2017-09-28 4 views
0

にマトリクス状に配列の最初の値の平均を取得する方法:Iのような配列の正方行列を使用している場合のMatlab

[1,2]、[2,3]

[5、

1.5

:9]、[1,4]

そして、私は、このような各列の配列の最初の値の平均を取得します

は、MATLABでこの可能ですか? 私は、単一の値の行列でこれを行うために平均(マトリックス、2)コマンドを使用しましたが、私は配列を処理するために、これを延長するかどうかはわかりません。

+5

は、あなたの行列がスライスとしてこれらの値を持つ3Dマトリックスですか?あなたの表記は混乱しています。実際のMATLAB構文を使用して行列を表現してください。 – rayryeng

答えて

0

あなたは、インデックス2の配列とsimilary行うことができますインデックス1の2次元アレイの合計平均値は、次のスナップショットを考慮して取得するために内部の平均機能平均関数を適用することができます。

+5

これは、実際のテキストではなく、スナップショットを持っているために、より便利です。彼は、この優れた解答ものの – rayryeng

+2

が、これはすべて憶測です。私たちはマトリックスの実際の形やフォーマットについては理解していないので、OPが彼の質問を編集することに決めたとき、この答えは正しいとは限りません。 – Adiel

1

多分あなたは長い間あなたの問題を見つめた後、コールmean

a = matrix(:,:,1); 
mean(a(:)) 
+0

質問を望んでいるという結果ではありません – rayryeng

0

前に再構築する必要が

mean(matrix(:,:,1)) 

mean関数を呼び出し、その後、行列のすべての配列の最初の要素を取得します。あなたの入力が3D行列で、フォーマットの各行が2D行列スライスに対応するように見えます。したがって、適切なMATLAB構文で、あなたの行列は実際には次のとおりです。

M = cat(3, [1,2; 2,3], [5,9; 1,4]); 

我々はこれを取得:

>> M = cat(3, [1,2; 2,3], [5,9; 1,4]) 

M(:,:,1) = 

    1  2 
    2  3 


M(:,:,2) = 

    5  9 
    1  4 

最初のスライスは行列[1,2; 2,3]であり、第二スライスは[5,9; 1,4]です。どのように見えるかから、各スライスの最初の列の平均値を求め、これを値の単一のベクトルとして返します。したがって、すべての行およびスライスの最初の列にmean機能とインデックスを使用。これは残念ながらシングルトンの3D配列になりますので、シングルトンの寸法を絞り出す必要があります。さらに騒ぎがなければ

O = squeeze(mean(M(:,1,:))) 

私たちは、このように取得する:

>> O = squeeze(mean(M(:,1,:))) 

O = 

    1.5000 
    3.0000 
関連する問題