2016-10-14 56 views
0

我在.txt文件中有一些数据。用逗号分隔。如何从.txt文件中提取数据列MATLAB

例如:

1.4,2,3,4,5 
2,3,4.2,5,6 
24,5,2,33.4,62 

如果你想平均列,就像第一列(1.4,2和24)?或第二列(2,3和5)?

我觉得把列在一个数组,并使用内置的均值函数会工作,但到目前为止,我只能够提取行,不列


,而不是使另一个线程,我我以为我会编辑这一个。我正在努力获得众所周知的虹膜数据集的每列平均值。 我切断数据的一小部分:对于类型“细胞”的输入参数

5.1,3.5,1.4,0.2,Iris-setosa 
4.9,3.0,1.4,0.2,Iris-setosa 
4.7,3.2,1.3,0.2,Iris-setosa 
4.6,3.1,1.5,0.2,Iris-setosa 
5.0,3.6,1.4,0.2,Iris-setosa 
5.4,3.9,1.7,0.4,Iris-setosa 
4.6,3.4,1.4,0.3,Iris-setosa 

delimiterln= ','; 
data = importdata('iris.txt', delimiterln); 


meanCol1 = mean(data(:,1)) 
meanCol2 = mean(data(:,2)) 
meanCol3 = mean(data(:,3)) 
meanCol4 = mean(data(:,4)) 

未定义的函数“总和”。 (行,115) y = sum(x,dim,flag)/ size(x,dim);

错误irisData(6号线) meanCol1 =平均值(数据(:,1))

它看起来像有一个与处理的数据类型......在这个有什么想法的错误?我试图摆脱最后一列,这是字符串。它似乎无误地工作。所以我想这是因为字符串。

回答

1

用逗号分隔的文件阅读功能:

M = csvread(filename); 

现在你有矩阵M:

col1Mean=mean(M(:,1)); 
+0

而在Matlab它支付进入“量化”的心态早,往往是可能的: '意思是(M,1)'一次就能得到所有列的平均值。 – jez

+0

是仅用于数字的csvread吗?如果还有一列字符串呢?有没有办法只排除那一列? –

+0

好吧,我想我知道如何做行的范围,所以它会像 –