我有一个大小为A
的4D矩阵m × n × p × q
。考虑B = A(:,:,1,1)
这是一个m × n
矩阵。我想总结B
的所有元素来给出一个数字。我希望为所有B
所有A
矩阵执行此操作,因此最终我将有一个p
个q
矩阵。
如果没有for循环,我怎么能这样做?
作为3D矩阵的示例(例如A
是一个3D矩阵)我觉得这很有效,
sum(squeeze(sum(A,1)),1)
但我不知道如何为4D矩阵做这个......
答案 0 :(得分:3)
有什么问题
[m n p q] = size( A );
squeeze( sum( reshape( A, [], p, q ), 1 ) )
可替换地,
squeeze( sum( sum( A, 2 ), 1 ) )
答案 1 :(得分:1)
可能最快:
permute(sum(sum(A)), [3 4 1 2]);
编辑:不,Shai的第一个解决方案更快:)