Azzera filtri
Azzera filtri

how i subtract a vector( 1*n-dim ) from columns of a matrix (n*n-dim) without uses for , end and orders likes these?

1 visualizzazione (ultimi 30 giorni)
i wish subtract a vector from columns of a matrix while my code is not great. example: a =
1 3
4 2
>> a-[1 2]= 0 1 3 0

Risposta accettata

Stephen23
Stephen23 il 24 Apr 2015
Modificato: Stephen23 il 24 Apr 2015
Use bsxfun for this:
>> A = [1, 3; 4, 2]
A =
1 3
4 2
>> B = [1, 2]
B =
1 2
>> bsxfun(@minus, A, B)
ans =
0 1
3 0
bsxfun expands any scalar dimensions to make the input variables the same size, then performs the specified operation. It is also much more efficient than using repmat.

Più risposte (1)

Joseph Cheng
Joseph Cheng il 24 Apr 2015
Look at the function repmat() to tile the vector to perform the matrix subtraction.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by