detecting the difference of the sequence

4 次查看(过去 30 天)
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.

采纳的回答

Michael Haderlein
编辑:Michael Haderlein 2015-2-4
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 个评论
Michael Haderlein
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 2015-2-5
Michael-i got your point and clarified my doubt. Thank you so much for your explanation. Appreciate it.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by