Multiply each column of a matrix by another matrix

조회 수: 3 (최근 30일)
Miguel Morgado
Miguel Morgado 2019년 4월 9일
댓글: Miguel Morgado 2019년 4월 10일
Hi,
I have 2 matrices, E of dimension 4x57 and J of dimension 4x4.
I'm trying to do the operation C = sqrt(E'*J*E) for each column of E, so that C ends up being a vector of length 57.
Any ideas of how to do this without a loop?
Thank you very much
  댓글 수: 1
Adam
Adam 2019년 4월 9일
E'*J*E
will result in a 57x57 matrix so what is the operation you are actually trying to achieve in ordder to get a length 57 vector?

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

채택된 답변

James Tursa
James Tursa 2019년 4월 9일
편집: James Tursa 2019년 4월 9일
Another way:
C = sqrt(sum(E.*(J*E)));
For the sizes involved, you probably won't see any significant timing differences between this method and Johathan's method. For much larger sizes, this method does less overall calculations than Jonathan's method and may run faster as a result.

추가 답변 (1개)

Jon
Jon 2019년 4월 9일
If I understand your question correctly then the result of the "operation for each column of E" will be on the main diagonal of E'*J*E so you should get what you want using C = sqrt(diag(E'*J*E))

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by