2012-10-11 77 views
1

我想讀取具有不規則矩陣的csv文件。 我需要閱讀的是A列(日期)和B列(測量)以迭代的方式。 下面是一個示例格式。MATLAB-如何使用迭代方式從文本文件中讀取某些列

 A, B, C,  A, B, C,  A, B, C ... ...        
4/1/1970, 2, 5, 3/1/1971, 6, 5, 2/1/1972, 7, 5 ... ... 
7/1/1970, 3, 5, 7/1/1971, 2, 5, 4/1/1972, 3, 5 ... ... 
     , , , 4/1/1971, 8, 5, 5/1/1972, 6, 5 ... ... continued with this format 
     , , ,   , , , 7/1/1972, 8, 5 
     , , ,   , , , 8/1/1972, 11,5 

最後,我想

 A, B 
4/1/1970, 2 
7/1/1970, 3 
3/1/1971, 6  
7/1/1971, 2 
    . 
    . 

哪位高手能幫我嗎? 預先感謝您。

+2

你有什麼試過? SO在這裏提供幫助。如果您需要爲您完成工作,請諮詢您所在城市的專業軟件開發人員。 –

回答

0

您可以使用CSVIMPORT。它將csv文件讀入單元陣列或矩陣。

參見: http://www.mathworks.com/matlabcentral/fileexchange/23573-csvimport

如果你讀它變成一個矩陣M然後你可以通過數據容易循環有兩個for循環。警告,我在這裏編寫僞代碼,所以沒有經過測試。祝你好運。

for row = 1:size(M,1) 
    for col = 1:size(M,2) 
     if M(row,col) != "" 
      % do some work 
0

您可以使用textscan爲purpoose

fid = fopen('data.txt'); 
A = textscan(fid, '%s%f%f%s%f%f%s%f%f', 'Delimiter', ',', 'Headerlines', 1); 
fclose(fid); 

A是細胞。日期讀取爲字符串(%s),而數字讀取爲雙打(%f)。如果數字或日期不存在,則分別在A中獲得NaN''