【发布时间】:2011-12-13 02:26:52
【问题描述】:
在 octave 中是否有一个内置函数可以将 m X n 的每一列元素与大小为 m 的列向量相乘,这比使用循环更有效?
【问题讨论】:
在 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
【讨论】:
我没有尝试过 Anna Lear 的答案,但正如 nobar 在该答案中评论的那样,Octave 现在进行广播。所以你只需要做 A.*B。您将收到一条警告,提示您正在应用自动产品广播
>> A.*B
warning: product: automatic broadcasting operation applied
ans =
1 2
6 8
15 18
【讨论】: