performance - Fast way to compute only the diagonal of the square of a matrix -


i have nxm matrix v, of compute square s=v'*v. following computations need diagonal of s, write s=diag(v'*v). however, bit of waste, because i'm computing off-diagonal elements. there fast way compute diagonal elements of s? use for loop, of course, explicit looping isn't fast way stuff in matlab.

thanks!!!

that's easy:

sum(conj(v).*v,1) 

or

sum(abs(v).^2,1) 

if matrix real, can simplify to

sum(v.*v,1) 

or

sum(v.^2,1) 

Comments

Popular posts from this blog

qt - Using float or double for own QML classes -

Create Outlook appointment via C# .Net -

ios - Swift Array Resetting Itself -