multiply and addition rows of matrices

조회 수: 3 (최근 30일)
Fiboehh
Fiboehh 2011년 5월 9일
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
Sean de Wolski
Sean de Wolski 2011년 5월 9일
Well asked question! You provided a small example, what you've tried, what you expect and dimensions - everything we typically ask for.

댓글을 달려면 로그인하십시오.

채택된 답변

Sean de Wolski
Sean de Wolski 2011년 5월 9일
Basic Singleton eXpansion along the 2nd dimension:
f = sum(bsxfun(@times,p,w))
  댓글 수: 2
Fiboehh
Fiboehh 2011년 5월 9일
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 2011년 5월 9일
You just use the 'sum' function as I have above. It defaults to summing columns.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

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

카테고리

Help CenterFile Exchange에서 Performance and Memory에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by