如何将以下输入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]
的矩阵注意:“value”列应为-1而不是问号。
我尝试使用cvsread,但它会出错。
谢谢!
答案 0 :(得分:2)
查看this answer到this 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
。 子>