csvread 只能读取双打,所以它在日期字段上窒息 . 使用 textscan .
fid = fopen('out2.csv');
out = textscan(fid,'%s%f%f','delimiter',',');
fclose(fid);
date = datevec(out{1});
col1 = out{2};
col2 = out{3};
Update (8/31/2017)
由于这是在2013年写回来的,所以MATLAB的textscan函数已经更新,可以直接读取日期和时间 . 现在代码看起来像这样:
fid = fopen('out2.csv');
out = textscan(fid, '%{MM/dd/uu HH:mm:ss}D%f%f', 'delimiter', ',');
fclose(fid)
[date, col1, col2] = deal(out{:});
@Victor Hugo下面提到的替代方案(目前我个人对此类情况的看法)将使用readtable,它将接受与 textscan 相同的格式化字符串,但将结果直接汇总到表对象中:
dataTable = readtable('out2.csv', 'Format', '%{MM/dd/uu HH:mm:ss}D%f%f')
dataTable.Properties.VariableNames = {'date', 'col1', 'col2'};
dataTable =
3×3 table
date col1 col2
___________________ ______ ______
03/09/2013 23:55:12 129.32 129.33
03/09/2013 23:55:52 129.32 129.33
03/09/2013 23:56:02 129.32 129.33