Matlab从文本文件中读取十六进制值,非十六进制值穿插?

时间:2013-06-04 23:37:46

标签: matlab file-io

我有一个文本文件,看起来像下面粘贴的内容。几个十六进制值后跟“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
.
.
.

1 个答案:

答案 0 :(得分:2)

这个解决方案在我的笔记本电脑上在不到一秒的时间内读取了100万个双字符行:

fid = fopen('test.txt');
A   = textscan(fid,'%2c','CommentStyle','XX');
fclose(fid);
A   = hex2dec(A{:});

请注意跳过以XX开头的那些行的'CommentStyle'选项。