detecting the difference of the sequence

3 views (last 30 days)
In the data set, i have one specific column which has 12 characters.It is a alphanumeric column.(pls see the attachment). Alphanumeric column sequence should be 0,1,2,3,....9,a,b,c,...f. But within the data set it differs(eg:3rd value in the file). I want to detect that value. (PS: since it has 12 characters, i want to first detect: first 4 characters(from the left) and if that's true then detect the last 4 digits). Any suggestions.

Accepted Answer

Michael Haderlein
Michael Haderlein on 4 Feb 2015
Edited: Michael Haderlein on 4 Feb 2015
Why do you want to detect first 4 characters from the left and then the last 4 digits? My suggestion is:
fid=fopen('test.txt');
data=textscan(fid,'%s');
fclose(fid);
diff(cellfun(@hex2dec,data{1}))>1
This will always be false except of the step ...67 ...69
Edit: If you want to get the respective value which is too large:
data{1}([false;diff(cellfun(@hex2dec,data{1}))>1])
ans =
'03ff00000169'
  3 Comments
Michael Haderlein
Michael Haderlein on 4 Feb 2015
I don't understand the problem. Do you mean that after 03ff0000ffff the next value would be 040000000000? Or would the next value be 03ff00010000?
Maybe a short explanation about my code: I first convert all the data (e.g. 03ff00000169) from hexadecimal to decimal: hex2dec('03ff00000169')=4393751544169
Then, I check the difference of the values. If it's larger than 1 (i.e. at least one value is missing), the too large value will be displayed. In case 03ffffffffff is followed by 040e00000000 (instead of 040000000000), the difference is also >1 and the respective value will be displayed. Is that what you want?
Chathu
Chathu on 5 Feb 2015
Michael-i got your point and clarified my doubt. Thank you so much for your explanation. Appreciate it.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!