matlab读取带有日期、字符串和数字的csv文件

matlab读取带有日期、字符串和数字的csv文件,matlab,csv,input,types,Matlab,Csv,Input,Types,如何将以下输入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、

如何将以下输入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,但它给出了一个错误

谢谢

看一看。我想这正是你想要的

您可以尝试
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