[英]Matlab multiply matrix with matrix along third dimension
我有一個大小為mxnx 3
的矩陣A
,我有一個3x3
矩陣K
現在我想要做的是這樣的事情:
for row = 1:m
for col = 1:n
A(row,col,:) = K*[A(row,col,1);A(row,col,2);A(row,col,3)];
end
end
我希望有一個沒有循環的有效解決方案,因為循環非常慢,因為mxn
通常是圖像的大小。
有人有個主意嗎?
M = 1000;
N = 1000;
L = 3;
A = rand(M,N,L);
K = rand(L,L);
Q = reshape((K * reshape( A, [M*N, L] ).' ).', [M, N, L]);
錯誤檢查:
Z = zeros(M,N,L);
for mm = 1 : M
for nn = 1 : N
Z(mm,nn,:) = K * squeeze( A(mm,nn,:) );
end
end
max( abs( Z(:) - Q(:) ) )
ans =
0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.