octave 中是否有一个内置函数可以将
m X n
的每一列按元素与大小为 m
的列向量相乘,这比使用循环更有效?
您可以根据需要多次复制向量,将其转换为
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
我还没有尝试过 Adam Lear 的答案,但正如 nobar 在该答案中评论的那样,Octave 现在进行广播。所以你只需要做A.*B。您将收到一条警告,提示正在应用自动产品广播
>> A.*B
warning: product: automatic broadcasting operation applied
ans =
1 2
6 8
15 18