multiply and addition rows of matrices

3 visualizaciones (últimos 30 días)
Fiboehh
Fiboehh el 9 de Mayo de 2011
I got a matrix p = [ 1; 2 ; 3; 4] so in general dimension p(m) (=4) and a matrix w(m,n) (=4,2) witch is w= [ 2 4; 6 8; 1 3 ; 5 7] now i want to multiply each row of w(m,n) by the number of p(m). So multiplication row by row. So the result must be f=[ 2 4; 12 18; 3 9; 20 28]. i tried f=p*w but it gives not the right result.
Second all the rows of f must be add to eachother so f have only one row with elements the addition of all rows. In the example: f=[ 2+12+3+20 4+18+9+27] Thx in advance
  1 comentario
Sean de Wolski
Sean de Wolski el 9 de Mayo de 2011
Well asked question! You provided a small example, what you've tried, what you expect and dimensions - everything we typically ask for.

Iniciar sesión para comentar.

Respuesta aceptada

Sean de Wolski
Sean de Wolski el 9 de Mayo de 2011
Basic Singleton eXpansion along the 2nd dimension:
f = sum(bsxfun(@times,p,w))
  2 comentarios
Fiboehh
Fiboehh el 9 de Mayo de 2011
Okj thx man, hadn't found that function :)
You know a solution for the addition, because f = bsxfun(@plus,p,p) doesnt change the dimension.
Sean de Wolski
Sean de Wolski el 9 de Mayo de 2011
You just use the 'sum' function as I have above. It defaults to summing columns.

Iniciar sesión para comentar.

Más respuestas (1)

Bjorn Gustavsson
Bjorn Gustavsson el 9 de Mayo de 2011
Golf:
f = (w'*p)';
If you need the same function for complex numbers yuo might have to pay 2 extra characters:
f = (w.'*p).';

Categorías

Más información sobre Performance and Memory en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by