【发布时间】:2018-01-27 07:50:55
【问题描述】:
我正在使用 iris 数据集,它看起来如下...
5.4,3.7,1.5,0.2,Iris-setosa
4.8,3.4,1.6,0.2,Iris-setosa
4.8,3.0,1.4,0.1,Iris-setosa
4.3,3.0,1.1,0.1,Iris-setosa
5.8,4.0,1.2,0.2,Iris-setosa
...
如您所见,数据中有不同的类型。前几个是浮点数,最后一个是字符串。因此我不能使用dlmread。当我尝试它时,我得到了错误。
我尝试使用fscanf,但我的解决方案没有给我想要的...
filename = "train.txt"
A = fopen(filename, 'r')
data = fscanf(A, '%f %f %f %f %s')
这将data 作为一个 1x1 数组。
我想要的是将数据转换为矩阵,我可以在其中按行和列访问值。所以,data(1,1) 将是 5.4。我对 Octave 中的 I/O 不太熟悉,因此非常感谢您的帮助。
【问题讨论】:
-
试试:
pkg load io; data = csv2cell("train.txt"); -
您的
fscanf格式字符串缺少逗号。