2017-06-16 10 views
-1

私はいくつかのデータの平均を得るためにインデックスを付けるMと呼ばれるm * n * k行列を持っています。2次元行列+ベクトルを用いた3d行列の索引付け

私はEZGと呼ばれる論理的なm * n行列を持ち、1:(end-1)からk番目の次元ごとにこれを適用したい(このベクトルをVと呼ぶ)。

このようなループせずにそれを書くために、任意のチャンスは:

M=rand(3,3,3) 
EZG=logical([1,1,1;0,1,0;0,0,1]) 
V=1:size(M,3)-1 

mean(mean(M(EZG,V)1),2) 

結果がV. の長さの一次元ベクトルでなければなりませんが、

+0

私はあなたが欲しいものを理解していません。数値的な釈放はできますか? –

+0

私は1つの例を追加しました。 – Squeezie

+0

あなたはしませんでした。私は、入力_と出力_を特定の値_で指定することを意味していました。私は質問を低品質にしているので(私は何が尋ねられているのか正確には分からないので)私は下降しました。あなたが編集するなら、私は幸いに私のダウンフォートを削除します –

答えて

0

ありがとう、私は、これはあなたが欲しいものだと思う。

M=rand(3,3,3); 
EZG=logical([1,1,1;0,1,0;0,0,1]); 
% repeat EZG K-1 times, and add zeros to the Kth slice 
V=cat(3,repmat(EZG,1,1,size(M,3)-1),false(size(M,1),size(M,2))); 
% logical index and mean 
m=mean(M(V)); 
関連する問題