0

我有一个类似于下面粘贴的文本文件。几个十六进制值后跟“xx”,然后是十六进制值。该模式重复〜1M次。我正在寻找一种只读出十六进制值而忽略“xx”值的好方法。Textscan 看起来很有趣,但不支持十六进制。fscanf 很棒,但它一碰到文件中的第一个“xx”就会窒息。我写了一个笨拙的脚本,它将所有内容都读取为字符串,省略了“xx”并使用了dec2hex,但这非常慢(显然)。有什么建议么?

7F
55
8A
9B
6E
XX
XX
XX
XX
FF
DE
BE
EF
XX
XX
XX
04
88
.
.
.
4

1 回答 1

2

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

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

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

于 2013-06-05T00:14:19.570 回答