0

以下に貼り付けたようなテキストファイルがあります。いくつかの 16 進数値の後に "xx" が続き、その後に 16 進数値が続きます。パターンは ~1M 回繰り返されます。「xx」値を無視して16進数値だけを読み取る良い方法を探しています。Textscan は興味深いようですが、16 進数をサポートしていません。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

このソリューションは、ラップトップで 1 秒未満で 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 に答える