2012-05-21 89 views
1

我原始的CSV文件看起來像第一張圖片。我想用Matlab將它讀入格式爲第2張圖片。我有超過1000種相同類型的CSV文件,如果我通過複製/粘貼來完成這將是痛苦的。我怎樣才能做到這一點?任何例子?閱讀複雜的格式CSV文件到Matlab

原始數據:Raw Data

輸出數據:Output Data

回答

0

首先要知道的是,一個.csv文件有一個非常簡單的格式。你上面的文件實際上是按照每行以下文本的純文本文件:

id,A001 
height 
a1,a2,a3 
3,4,5 
3,4,5 
6,7,5 

weight 
a1,a2,a3 
4,4,5 
5,4,6 
i6,7,5 

所以,不是所有的辛苦爲你寫在Matlab自己的解析器。你想使用的命令一樣

fid = fopen('filename.csv','r'); 
L = fgetl(fid); % get a text line from the file 
commas = find(L==','); % find where the commas are in the line 
n1 = str2num(L(1:commas(1)-1); % convert the first comma-delimited number on line L 
fidout - fopen('myfile.csv','w'); 
Lout = [ L(commas(2)+1:commas(3)-1) ', a1, a1']; 
fwrite(fidout,Lout); % write a line out to the output file 
fclose all; % close all open files. 

它會顯得慢一讀中各種變量的各種值,然後安排他們寫出來的,你希望他們寫出到輸出文件的方式。但是一旦你滾動,它會變得非常快,你會發現自己對文件中的內容有很好的理解,並且你將會第一手知道如何編寫諸如texscan.mcsvwrite.m等等。

祝你好運!