2016-10-14 17 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)) 

未定義関数「和」タイプ「セル」の入力引数のための: Iは、データの小さな部分をカット。

平均誤差(行115) y = sum(x、dim、flag)/ size(x、dim); irisDataで

エラー(ライン6) meanCol1 =平均(データ(:、1))

データ型...この上の任意の考えを扱うとエラーが発生しているように見えますか?私は文字列である最後の列を取り除こうとしました。間違いなく動作するようです。だから私はそれが文字列のためだと思っています。ファイル読み込み機能をカンマ区切り

答えて

1

用途:

M = csvread(filename); 

あなたは行列Mが持っている:MATLABに

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

それは早ければ、多くの場合、可能な限り「ベクトル化」の考え方に入るために支払います。 'mean(M、1)'はすべての列の平均を一度に取得します。 – jez

+0

は数字のみのcsvreadですか?追加の列の列がある場合はどうなりますか?その列だけを除外する方法はありますか? –

+0

大丈夫、私は行の範囲を行う方法を知っていると思うので、実際に私が見つけた –

関連する問題