【问题标题】:matlab read csv file with dates, strings, and numbersmatlab 读取包含日期、字符串和数字的 csv 文件
【发布时间】:2014-03-06 06:01:27
【问题描述】:

如何将以下输入的 csv 文件读入 matlab。

mid     cid     rate    value    date 
1262    24294   4       ?        7/4/04
1810    18187   3       ?        3/12/04
2000    23573   5       ?        1/20/05
3312    25907   1       ?        5/12/05

我想要一个有 5 列 [mid, cid, rate, value, date] 的矩阵

注意:“值”列应为 -1 而不是问号。

我尝试使用 cvsread 但它给出了错误。

谢谢!

【问题讨论】:

    标签: matlab csv input types


    【解决方案1】:

    看看this answerthis question。我认为它完全符合您的要求。

    您可以尝试textscan 并使用datenum 手动转换日期列

    fid = fopen('datafile.csv');
    data = textscan(fid, '%f %f %f %s', 'Delimiter', ',', 'HeaderLines', 1);
    fclose(f);
    data{4} = datenum(data{4});
    

    将返回一个双精度元胞数组数据,其中第四列是每个日期对应的 MATLAB datenum,每一列是文件中的对应列。

    使用这种方法,您需要单独阅读标题行。可以这样轻松完成:

    mid = data{1};   % etc...
    

    您也可以从文件中读取名称并使用eval 进行分配,但如果列数较少,我建议避免使用eval

    【讨论】:

      猜你喜欢
      • 2011-12-18
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-01
      • 1970-01-01
      相关资源
      最近更新 更多