向量化矩阵乘法

计算科学 matlab 矩阵 表现
2021-12-10 21:44:21

我想做以下操作:我有一个“4D”矩阵A和一个“3D”矩阵B。A和B实际上都是2D矩阵,其中对于A,每个元素都是2D矩阵,对于B,每个element 是一维矩阵或向量。我想,对于二维平面图中的每个元素,将 A 上的矩阵和 B 中的矩阵相乘。以图形方式,

在此处输入图像描述

目前,我的代码是:

% size(A) = Nx, Ny, n, n
% size(B) = Nx, Ny, n
% size(C) = Nx, Ny, n

for k1 = 1 : Nx
for k2 = 1 : Ny
    C(k1,k2,:) = squeeze(A(k1,k2,:,:)) * squeeze(B(k1,k2,:));
end
end

我正在寻找一种“矢量化”代码并完全避免循环的方法。我希望这样的矢量化能够加快我的程序。

0个回答
没有发现任何回复~