我有一個具有以下格式的相當大的文本文件(16000行):如何讀取matlab中具有可變十六進制值列的文本文件?
#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
不支持十六進制值的轉換。我也試着在這裏找到了解決辦法:
Problem (bug?) loading hexadecimal data into MATLAB
但也似乎並沒有正常工作。我試圖避免單獨轉換每個十六進制值(有些是我現在實現的解決方案),因爲這需要很長時間才能完成。如何從文本文件中掃描/解析變量列寬十六進制值?
這真的很整齊有序。它不是逐行取出文件,而是處理整個文件並將其轉儲成一個組織良好的數據表單。我很害怕'hex2dec'的使用,因爲當我單獨調用它時(2M +次和136+秒),需要很長時間,但是這要快得多(小於1秒)! – KronoS