这让我有点困扰:
假设您有一个包含三层的矩阵。
有没有一种简单的方法将该矩阵与三个元素的向量相乘,以便第一层(所有元素)与向量的第一个元素相乘,依此类推...
现在我必须使用一个函数来完成它:
function out=fun(matrix,vector)
out=matrix;
for k=1:3
out(:,:,k)=out(:,:,k)*vector(k);
end
是否有一种无需函数即可在一行中完成此操作的有效方法?
最佳答案
一个非常简洁的解决方案是 reshape vector
转换为 1×1×3 矩阵并使用函数 BSXFUN执行逐元素乘法(它将根据需要复制维度以匹配两个输入参数的大小):
newMatrix = bsxfun(@times,matrix,reshape(vector,[1 1 3]));
关于matlab - 3D 矩阵与向量的乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5681196/