2014-03-29 55 views
0

我有一個關於Matlab數據導入(也許很簡單)的問題。我想導入具有分隔格式這樣一個逗號一個巨大的數據集(〜1GB):Matlab - 具有固定列數的數據導入

08:05, 12, 33, 124, 13, 08:06, 22, 84, 12, 35, .. 

每5個值是一個時間戳。我想用固定數量的colums(5 colums)導入它,但行尾沒有分隔符。它應該看起來像這樣到底:

08:05 12 33 124 13 
08:06 22 14 1 35 
08:07 22 124 12 34 
08:08 22 12 12 0 

我想過用子程序替換每5個逗號,但這太費時了。你知道更好的解決方案嗎?我希望有一個很好的內置函數。

回答

1

您可以使用fscanf和C型格式字符串來完成此操作。例如:

fid=fopen('filename.txt'); 
A=reshape(fscanf(fid,'%d:%d, %d, %d, %d, %d, '),6,[])'; 
fclose(fid); 

它保存在一個矩陣A你的答案將包含

A = 
    8  5 12 33 124 13 
    8  6 22 84 12 35 

如果你想這種格式爲你列出一個字符串或輸出文件,你可以使用:

fprintf('%02d:%02d %-3d %-3d %-3d %-3d\n',A') 
+0

非常感謝你:) – user2037819

+0

@ user2037819,如果這就是你所需要的,考慮upvoting和接受答案,讓人們知道你的問題已經解決。 –