2011-10-22 21 views

Respuesta

35

Puede replicar el vector tantas veces como sea necesario para convertirlo en una matriz m x n así y luego usar la incorporada en el operador de multiplicación elemento a elemento .*:

>> 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

Creo que Octave ahora lo hará automáticamente (lo llaman "difusión"). Por defecto, recibirá una advertencia. – nobar

3

No he probado La respuesta de Anna Lear, pero como nobar comentó en esa respuesta, Octave ahora hace la transmisión. Entonces solo tienes que hacer A. * B. Recibirá una advertencia que dirá que se está aplicando una transmisión automática de productos.

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

1 2 
6 8 
15 18 
Cuestiones relacionadas