为什么不能读取scilab矩阵中的所有值?

问题描述 投票:0回答:1

我正在尝试读取一个csv文件,我的代码如下

param=csvRead("C:\Users\USER\Dropbox\VOA-BK code\assets\Iris.csv",",","%i",'double',[],[],[1 2 3 4]); //reads number of clusters and features
data=csvRead("C:\Users\USER\Dropbox\VOA-BK code\assets\Iris.csv",",","%f",'double',[],[],[3 1 19 4]); //reads the values


numft=param(1,1);//save number of features
numcl=param(2,1);//save number of clusters
data_pts=0;
data_pts = max(size(data, "r"));//checks how many number of rows 
disp(data(numft-3:data_pts,:));//print all data points (I added -3 otherwise it displays only 15 rows)

disp(numft);//print features
disp(data_pts);//print features
disp(param);

endfunction

下面是我要读取的值

features,4,,
clusters,3,,
5.1,3.5,1.4,0.2
4.9,3,1.4,0.2
4.7,3.2,1.3,0.2
4.6,3.1,1.5,0.2
5,3.6,1.4,0.2
7,3.2,4.7,1.4
6.4,3.2,4.5,1.5
6.9,3.1,4.9,1.5
5.5,2.3,4,1.3
6.5,2.8,4.6,1.5
5.7,2.8,4.5,1.3
6.3,3.3,6,2.5
5.8,2.7,5.1,1.9
7.1,3,5.9,2.1
6.3,2.9,5.6,1.8
6.5,3,5.8,2.2
7.6,3,6.6,2.1

我不知道为什么代码只显示15行而不是17行。它显示正确矩阵的唯一时间是当我在numft中放入-3时,列数为1。我很困惑。有没有更好的方法读取值?

file-io scilab
1个回答
0
投票

在脚本第一行的csvRead调用中,要读取的区域的边界不正确,应像这样进行更正:

param=csvRead("C:\Users\USER\Dropbox\VOA-BK code\assets\Iris.csv",",","%i",'double',[],[],[1 2 2 2]);
© www.soinside.com 2019 - 2024. All rights reserved.