vectorization - How to vectorize the following block of matlab -



vectorization - How to vectorize the following block of matlab -

assume has bounds (1:2,1:2,1:numfoo ), how vectorize next lines:

w = zeros( 2, 2, numfoo ); = 1:numfoo temp(1:2,1:2) = inv( a(1:2,1:2,i) ); w(1:2,1:2,i) = ( temp * (temp') ); end

tyia!

since matrix size 2, can utilize explicit expressions vectorize code. https://en.wikipedia.org/wiki/inverse_of_a_matrix#inversion_of_2.c3.972_matrices

dets=a(1,1,:).*a(2,2,:)-a(1,2,:).*a(2,1,:); temp=[a(2,2,:)./dets -a(1,2,:)./dets ; -a(2,1,:)./dets a(1,1,:)./dets]; w=[temp(1,1,:).^2+temp(1,2,:).^2,... temp(1,1,:).*temp(2,1,:)+temp(1,2,:).*temp(2,2,:);... temp(2,1,:).*temp(1,1,:)+temp(2,2,:).*temp(1,2,:),... temp(2,1,:).^2+temp(2,2,:).^2];

i tested it, gives same result, , speed-up x100

elapsed time 1.070547 seconds. elapsed time 0.012767 seconds.

matlab vectorization

Comments

Popular posts from this blog

How do I check if an insert was successful with MySQLdb in Python? -

delphi - blogger via idHTTP : error 400 bad request -

postgresql - ERROR: operator is not unique: unknown + unknown -