如何将向量和 3D 矩阵相乘

How to multiply a vector and a 3D matrix

我有一个 20 x 1 向量 Amp 和一个 3D 矩阵 M 100 x 20 x 100。 我想将 Amp 的每个元素乘以 M 中相应的切片。 我已经通过 for 循环实现了这一点,如下所示:

Result = zeros(100,20,100);
for i=1:20
   Result(:,i,:) = Amp(i)*M(:,i,:);
end 

但我想知道是否有办法使它更快。 提前致谢

方法如下:

Result = bsxfun(@times,Amp.',M);