matlab - 3D 矩阵与向量的乘法

标签 matlab matrix vector

这让我有点困扰:

假设您有一个包含三层的矩阵。

有没有一种简单的方法将该矩阵与三个元素的向量相乘,以便第一层(所有元素)与向量的第一个元素相乘,依此类推...

现在我必须使用一个函数来完成它:

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/

相关文章:

matlab:KeyPressFcn 和 WindowKeyPressFcn 的区别

python - 从 Matlab 和 Python 中获取的特征向量的符号差异

C - (Printf) 强制显示零

generics - 如果我已经为 U 实现了 From<T>,Rust 是否为 Vec<U> 实现了 From<Vec<T>>?

vector - 为什么键和值不能在向量上工作?

c++ - 将权重和参数从 matlab 导出到 C++

matlab - 将多个元胞数组合并为一个元胞数组 (Matlab)

matlab - 连接每第 n 行

math - 半正定矩阵和数值稳定性?

android - 无法导入创建的矢量可绘制对象