Dear all:
I am trying to calculate a diagonal of a matrix (denoted A), which is formed by multiplying two large-dimensional matrices (denoted as B*C).
A naive way to do it is: first, calculating explicitly A = B*C, then get diagonal out from A. However, the first step takes forever to run due to the high-dimension of B and C. But the only thing I need is the diagonal of A.
Another straightforward way in my mind is: I could create a loop by calculating each element of the diagonal of A one by one. It will surely save a lot of time, but I am not sure if this is the most efficient way.
I am wondering if anyone knows a faster/smarter way to calculate it.
Thank you very much in advance!
Best,
Long
1 Comment
Direct link to this comment
https://se.mathworks.com/matlabcentral/answers/512998-get-the-diagonal-without-calculating-the-explicit-matrix#comment_815881
Direct link to this comment
https://se.mathworks.com/matlabcentral/answers/512998-get-the-diagonal-without-calculating-the-explicit-matrix#comment_815881
Sign in to comment.