[英]How can I efficently use Matlab to find the all the variances along the third dimension of a 3D array?
[英]Matlab: Operations along the first dimension of a 3D array
我有一個3D數組M(d * d,m,n)。 對於M的每個d * d向量(即第一維的向量),我將其分成d個部分,並取每個部分的總和形成一個新的向量(大小為d)。 例如,如果u是沿着M的第一個維度的向量,則它將被向量v代替,該向量由以下公式計算:
v = sum(reshape(u,d,d))';
目前,我使用如下循環,但是我認為應該有一種更快的方法。
N = zeros(d,m,n)
for i=1:m
for j=1:n
N(:,i,j) = sum(reshape(M(:,i,j),d,d))'; %//'
end
end
非常感謝您的任何建議!
嘗試這個 -
N = reshape(sum(reshape(M,d,[])),d,m,n)
我可能沒有正確理解問題,但這是您要尋找的嗎?
N=squeeze(sum(reshape(M,[d,d,size(M,2),size(M,3)])))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.