2015-11-05 162 views
-1

我的CSV文件中的数据是这样的:导入CSV数据到MATLAB

2015/01/01;00:15;62;646;96;321;42;74;529;0;0 
2015/01/01;00:30;245;74;854;62;154;93;354;0;0 
...... 

的数据由分号与前两列分开的时间,其余的数字数据采样。

我只想数值数据导入到MATLAB中,我试图用csvread

M = csvread('data.csv',0,2,[0 2 500 10]); 

,但得到的错误是这样的:文件之间

使用错误dlmread(线138)不匹配和格式字符串。

我该如何解决这个问题?

还试图textscan但失败了..

+0

认真吗?这是今天的第三个问题,有人问到这个话题! – IKavanagh

+0

现在大家都知道。整个班级都会得到一份任务,整个班级都会把它放在SO上。此外,数据不是OP所要求的... –

+0

检查是否是分隔符或小数分隔符(而不是我期望Matlab假设的'.')。 – Schorsch

回答

0

使用dlmread来代替。它允许你指定一个自定义分隔符,这csvread并不:

M = dlmread('data.csv', ';', 0, 2) 

前两个元素不应该被解析,所以他们非数值性质应正确忽略。

+0

仍然有这样的错误:使用dlmread时出错(第138行) 文件和格式字符串不匹配。 从文件(行号1,字段编号4)读取'Numeric'字段时出错==> ,51; 622,8; 1,5; 208,8; 246,83; 179,54; 268,04; 0 ; 0;; \ n 数据错误(第1行) M = dlmread('data.csv',';',0,2);这个问题与数据的格式有关吗? –

+0

是的。从错误输出中,显然分隔符都是';'和','在你的实际数据中,而不仅仅是';'如你所说。在这种情况下,使用['textscan()'](http://www.mathworks.com/help/matlab/ref/textscan.html),这非常可笑。 –