2013-06-29 27 views
1

DATA加载CSV文件到八度/ MATLAB

假定以下数据格式(具有标题行的第一行中,500+行):

数字,数字,数字,字符串,字符串,数字,数量,数字,字符串,数字,数字,数字

实施例: 1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,C85,S

我的代码:

忽略列4,9,11和12(索引从1开始)。

[A, B, C, D, E, F, G, H] = textread("train.csv","%d %d %d %*q %s %d %d %d %*s %*s %f %*s %*s","delimiter",",","endofline","\n","headerlines","1"); 

出现错误:

error: invalid conversion from string to real scalar 
error: fskipl: invalid number of lines specified 
error: called from: 
error: /usr/share/octave/3.6.4/m/io/textread.m at line 71, column 5 

我是新来的八度和无法理解的错误的原因。请指导。

+2

'......,“标题行”,“1”)'应该可能是......,“标题行”,1)' – erikced

+0

没错。虽然格式有点混乱。使用%q会给出一个错误:'strread:A(I):index out of bounds;值1越界0' – guerrero

回答

2

除了上面提到的headerlines的问题,你有13个转换规范,但只有12列,第9列应该对应一个%*s,而不是两个。 如果我改变格式字符串

%d %d %d %*q %s %d %d %d %*s %f %*s %*s 

解析一个小样本文件有望在Matlab工作。