矩阵和向量的逐元素乘法?

问题描述 投票:0回答:2

octave 中是否有一个内置函数可以将

m X n
的每一列按元素与大小为
m
的列向量相乘,这比使用循环更有效?

vector matrix octave
2个回答
39
投票

您可以根据需要多次复制向量,将其转换为

m x n
矩阵,然后使用内置的逐元素乘法运算符
.*
:

>> A = [1 2; 3 4; 5 6];
>> B = [1; 2; 3];

>> A .* repmat(B, 1, columns(A))
ans = 

    1    2
    6    8
   15   18

3
投票

我还没有尝试过 Adam Lear 的答案,但正如 nobar 在该答案中评论的那样,Octave 现在进行广播。所以你只需要做A.*B。您将收到一条警告,提示正在应用自动产品广播

>> A.*B
warning: product: automatic broadcasting operation applied
ans =

 1    2
 6    8
15   18
© www.soinside.com 2019 - 2024. All rights reserved.