1

数据

假设以下数据格式(第一行有标题行,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

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

4

1 回答 1

2

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

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

解析一个小样本文件在 Matlab 中按预期工作。

于 2013-06-29T17:14:28.690 回答