2011-10-22 84 views

回答

35

,因为你需要把它变成一个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 
+2

我相信,Octave现在会自动做到这一点(他们称之为“广播”)。默认情况下,您将收到警告。 – nobar

3

我没试过安娜李尔的回答,但作为nobar评论这个答案,八度现在做广播。所以你只需要做A. * B。你会得到一个警告,会说自动产品广播正在应用

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

1 2 
6 8 
15 18