用2d矩阵加矢量索引3d矩阵

时间:2017-06-16 09:08:57

标签: matlab indexing 3d

我有一个名为M的m * n * k矩阵,我想索引它以获得某些数据的平均值。

我有一个名为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的一维向量。 谢谢

1 个答案:

答案 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));