我有一个相当大的文本文件(超过16,000行),其格式如下:
注意:这显然是虚构的数据,因为实际文件中有更多的HEX值。
在Matlab中,我尝试使用单行的textscan命令:
我遇到了一个格式不正确的字符串错误。我认为
#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
不支持十六进制值的转换。我也尝试了这里找到的解决方案:
但是,这似乎也不起作用。我正在尝试避免逐个转换每个十六进制值(目前已实现的解决方案),因为这需要很长时间才能完成。如何从文本文件中扫描/解析可变列宽的十六进制值?
hex2dec
感到担心,因为当我单独调用它时,它花费了很长时间(超过 2M 次和 136 秒),但这样做要快得多(小于 1 秒)! - James Mertz