【问题标题】:how to read delimited file with '/' and space in MATLAB如何在 MATLAB 中读取带有“/”和空格的分隔文件
【发布时间】:2011-10-16 10:54:41
【问题描述】:

我想在 MATLAB 中读取这个文件,该文件包含这些数据

1/1/2008 1110 98.5
1/2/2008 1110 99.5
1/3/2008 1110 96.5
1/4/2008 1110 32.5
1/5/2008 1110 8.56
1/6/2008 1110 48.5

应该分五列:

  • 第一列是月份
  • 第二列是日期
  • 第三列是年份
  • 第 4 列是 1110
  • 第 5 列是最后一列

【问题讨论】:

    标签: matlab file-io


    【解决方案1】:

    使用TEXTSCAN函数:

    %# parse file (change the data types if necessary)
    fid = fopen('file.dat','rt');
    C = textscan(fid, '%d/%d/%d %d %f', 'Delimiter',' ');
    fclose(fid);
    
    %# put columns in separate variables
    [dt_month,dt_day,dt_year,val1,val2] = deal(C{:});
    
    %# convert to serial date
    dt = datenum(double(dt_year),double(dt_month),double(dt_day));
    

    【讨论】:

    • 谢谢 Amro 先生,我找到了我想要的答案:data = textscan(fid,'','delimiter','/\t') 这就是输出:1 6 2008 1110 48
    • 如果你不指定格式化字符串,它会尝试读取浮点数%f,你也可以像['/' '\t']那样指定多个分隔符
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    相关资源
    最近更新 更多