1

Matlab で作業するには、テキスト ファイルからいくつかのデータをインポートする必要があります。

1947/02/28   79,1
1947/03/31   79,1
1947/04/30   80,2

等々...

私の問題は、35x2 マトリックス (35 は単なる乱数) または 35x1 マトリックス (文字列または日時) と 35x1 マトリックス (double の) を含む構造体にインポートできないことです。 )

複数のスペースをサポートする textscan、importdata ... のようなインポート関数が見つかりません。それ以外の場合は、「、」でデータを分割しようとします。

助けてください。

4

1 に答える 1

1

fidがファイルハンドルであると仮定しましょう。

r = struct('date', {}, 'value', {});
n_line = 0;
tline = fgets(fid);
while ischar(tline)
    tok = regexp(tline, '(\d+/\d+/\d+)\s+(\d+),(\d)', 'tokens');
    if ~isempty(tok)
        n_line = n_line + 1;
        r(n_line).date = datenum(tok{1}{1});
        r(n_line).value = 0.1 * str2double(tok{1}{3}) + str2double(tok{1}{2});
    end
    tline = fgets(fid);
end

完了したら閉じることを忘れないでくださいfid80,2のドイツ語表記のようなものだと考えていると思いますが80.2、それが正しいかどうかはわかりません。

于 2013-01-04T19:21:15.407 に答える