1

我必须从文本文件中导入一些数据才能在 Matlab 中使用它:

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

等等...

我的问题是:我不能将它导入一个 35x2 矩阵(35 只是一个随机数)或一个结构,该结构一方面包含一个 35x1 矩阵(字符串或日期时间),另一方面包含一个 35x1 矩阵(双)

我找不到像 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

完成后不要忘记关闭fid。我假设您认为80,2它类似于德语符号80.2,但不确定这是否正确。

于 2013-01-04T19:21:15.407 回答