gpt4 book ai didi

matlab - 将二维矩阵与向量相乘以跨越第三维 - MATLAB

转载 作者:行者123 更新时间:2023-12-02 08:29:05 30 4
gpt4 key购买 nike

当我尝试将 m x n 矩阵与 p 维 向量相乘时,我遇到了一些困难。

尽量避免循环,这就是我想要实现的目标

enter code here
M = [1 2 3; p = [1;2;3]
4 5 6;
7 8 9]

我想获得一个 3x3x3 矩阵,其中三维切片只是 M 的条目乘以 p 中的相应条目>.

非常感谢帮助

最佳答案

您可以使用 bsxfunpermute对于 vectorized像这样的(无循环)方法 -

out = bsxfun(@times,M,permute(p(:),[3 2 1]))

你最终会得到 -

out(:,:,1) =
1 2 3
4 5 6
7 8 9
out(:,:,2) =
2 4 6
8 10 12
14 16 18
out(:,:,3) =
3 6 9
12 15 18
21 24 27

使用矩阵乘法 -

out = permute(reshape(reshape(M.',[],1)*p(:).',[size(M) numel(p)]),[2 1 3])

关于matlab - 将二维矩阵与向量相乘以跨越第三维 - MATLAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29276924/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com