我有一个CSV文件中的以下示例。结构是:
Date ,Time(Hr:Min:S:mS), Value
2015:08:20,08:20:19:123 , 0.05234
2015:08:20,08:20:19:456 , 0.06234
然后我想在MATLAB中将其读入矩阵。
尝试:
Matrix = csvread('file_name.csv');
还尝试格式化字符串。
fmt = %u:%u:%u %u:%u:%u:%u %f
Matrix = csvread('file_name.csv',fmt);
问题是当文件被读取时格式错误并以不同方式显示。
非常感谢任何帮助或建议!
修改
使用@Adriaan时,结果为
2015 -11 -9
8 -17 -1
所以似乎MATLAB认为' - '是分隔符(分隔符)
答案 0 :(得分:2)
Matrix = csvread('file_name.csv',1,0);
csread
不支持格式说明符。只需输入标题行数(我将其视为一个,例如)和标题列数,0。
但是,您的文件包含非数字数据。因此,使用importdata
导入它:
data = importdata('file_name.csv')
这会为您提供一个结构data
,其中包含两个字段:data.data
包含数字数据,即包含value
的向量。 data.textdata
是包含其余数据的单元格,您需要前两列并从中提取数字,即
for ii = 2:size(data.textdata,1)
tmp1 = data.textdata{ii,1};
Date(ii,1) = datenum(tmp1,'YYYY:MM:DD');
tmp2 = data.textdata{ii,2};
Date(ii,2) = datenum(tmp2,'HH:MM:SS:FFF');
end
感谢@Excaza,它支持毫秒数。