2014-12-03 2 views
1

2x2 행렬의 NxN 배열을 가지고 있으며, 각각을 반전해야합니다. Matlab (또는 사용자 정의 함수)을 사용하면 각 함수를 반복하여 반전하는 것보다 빠르게 수행 할 수 있습니까? 나는 그들이 모두 뒤집을 수 있고 잘 조절되었다고 생각할 수있다.많은 수의 작은 행렬을 빠르게 반전합니다.

예 : 프로파일이 마지막 줄은 "exphL1가 (: ..."라고 말한다 왜

보조 노트로
% dim(A) = 2 x 2 x N x N 
I = eye(2); 
for i = 1:N 
for j = 1:N 
    exphl(:, :, i, j) = expm(A(:, :, i, j)); 
    for k = 1:M 
     z = r(k); %constants 
     zIA = (z*I-A)\I; 
     exphL1(:, :, i, j) = exphL1(:, :, i, j) + dt*zIA*(exp(z/2)-1); 
    end 
end 
end 

가, 누군가가 말해 줄 수 있을까? 가장 많은 시간이 소요

+1

정확하게이 [링크] (http://www.mathworks.com/matlabcentral/fileexchange)를 수행하는 사용자 정의 함수가 있습니다. 작업을 수행하는 MATLAB 함수 : inv()./31222 - 임의의 다차원 배열에 대해 2 차원 슬라이스마다) // – 5o3x

답변

-2

있다

+2

inv()은 computi에서 느립니다. 반전보다 \ – 5o3x

+0

[이 스레드를 참조하십시오 (http://stackoverflow.com/questions/1419580/why-is-matlabs-inv-slow-and-inaccurate) 이유는 ** 사용하지 않는 **'inv'. – Shai

+2

그리고 다른 질문에 대한 답이 신뢰할만한 것인지 궁금하다면 ... Loren은 그녀가 말하는 것에 대해 알고 있습니다! 적어도 나보다 더 잘해, 나와 거의 모든 사람들. 그녀는 MATLAB 언어의 디자인에 종사하고 2005 년부터 [MATLAB에 대한 블로그 게시물] (http://blogs.mathworks.com/loren/)을 작성했습니다. –