我有一个相当大的文本文件(超过 16,000 行),其格式如下:
#ID #Line Num #Var Col Length Values (HEX):
45 00001 FFFF FFFF 0000 0000
45 00002 0000 0000 FFFF FFFF
47 00003 AAAA 1111 AAAA 1111 AAAA 1111
49 00004 BBBB 2222
注意:这显然是虚构的数据,因为实际文件中有更多的 HEX 值。
在 Matlab 中,我尝试使用textscan
单行命令:
fp = fopen(filePath, 'rt');
readLine = fgetl(fp);
[ignored, pos] = textscan(readLine, '%d');
values = textscan(readLine(pos+1:end), '%x');
我收到格式错误的字符串的错误。我假设它textscan
不支持十六进制值的转换。我也尝试了这里找到的解决方案:
但这似乎也不起作用。我试图避免单独转换每个十六进制值(有点我现在实施的解决方案),因为这需要很长时间才能完成。如何从文本文件中扫描/解析可变列宽十六进制值?