2012-01-22 116 views
3

如何將CSV文件導入MATLAB ?.我正在處理的文件中的一行看起來像:在MATLAB中導入CSV文件

SUNW,2-Jan-98,1998,5,40.125,41.5 

有36列和10107行。第一行包含列標題。似乎MATLAB不支持導入這種類型的CSV文件。使用以下textscan函數將整個數據讀入一個單元陣列。

data = textscan(fid, '%s %s %d %d %f %f', ... 
    'HeaderLines',1, 'Delimiter',',', 'CollectOutput',1); 

有沒有一種方法可以將數據讀入每個列的不同變量?

回答

2

例6在textscan documentation似乎涵蓋您感興趣的使用情況:

使用文本編輯器創建一個逗號分隔的文件data2.csv是 包含線

abc, 2, NA, 3, 4 
    // Comment Here 
    def, na, 5, 6, 7 

指定該textscan應該當作註釋或空 值的輸入:

fid = fopen('data2.csv'); 
    C = textscan(fid, '%s %n %n %n %n', 'delimiter', ',', ... 
       'treatAsEmpty', {'NA', 'na'}, ... 
       'commentStyle', '//'); 
    fclose(fid); 

textscan返回與下列細胞的1×5單元陣列C:

C{1} = {'abc'; 'def'} 
    C{2} = [2; NaN] 
    C{3} = [NaN; 5] 
    C{4} = [3; 6] 
    C{5} = [4; 7] 

雖然沒有明確每列分配給一個單獨的變量,就可以很容易地這樣做col1 = C{1};