1

不規則なマトリックスを持つ csv ファイルを読みたいと思います。私が読む必要があるのは、反復的に A 列 (Dates) と B 列 (Measurements) です。以下はフォーマットの例です。

       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
     .
     .

専門家は私を助けることができますか?前もって感謝します。

4

2 に答える 2

0

CSVIMPORT を使用できます。csv ファイルを cell 配列または行列に読み取ります。

参照: http://www.mathworks.com/matlabcentral/fileexchange/23573-csvimport

それを行列 M に読み込むと、2 つの for ループでデータを簡単にループできます。警告、私はここに疑似コードを書いているので、テストされていません. 幸運を。

for row = 1:size(M,1)
    for col = 1:size(M,2)
        if M(row,col) != ""
            % do some work
于 2012-10-11T07:30:37.003 に答える
0

textscanその目的で使用できます

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

Aセルです。日付は文字列 ( %s) として読み取られ、数値は倍精度 ( %f) として読み取られます。数字または日付が欠落している場合は、それぞれ または を取得しNaNます。''A

于 2012-10-11T08:42:03.763 に答える