我有一个文本文件,看起来像下面粘贴的内容。几个十六进制值后跟“xx”,后跟十六进制值。该模式重复约1M次。我正在寻找一种很好的方法来读出忽略“xx”值的十六进制值。 Textscan似乎很有趣,但不支持hex。 fscanf很棒,但是一旦碰到文件中的第一个“xx”就会窒息。我写了一个笨重的脚本,它以字符串形式读取所有内容,省略了“xx”并使用了dec2hex,但这是痛苦慢(显然)。有什么建议吗?
7F
55
8A
9B
6E
XX
XX
XX
XX
FF
DE
BE
EF
XX
XX
XX
04
88
.
.
.
答案 0 :(得分:2)
这个解决方案在我的笔记本电脑上在不到一秒的时间内读取了100万个双字符行:
fid = fopen('test.txt');
A = textscan(fid,'%2c','CommentStyle','XX');
fclose(fid);
A = hex2dec(A{:});
请注意跳过以XX开头的那些行的'CommentStyle'
选项。