快速反转大量小矩阵

时间:2014-12-03 07:53:29

标签: matlab matrix matrix-inverse

我有一个2x2矩阵的NxN数组,我需要反转每个矩阵。使用Matlab(或用户定义的函数),有没有一种方法可以更快地执行此操作而不是循环遍历每个并反转它?我可以假设它们都是可逆的并且条件良好。

示例:

% 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

作为旁注,有人可以告诉我为什么分析器说最后一行" exphL1(:..."花费最多时间?

1 个答案:

答案 0 :(得分:-2)

有一个MATLAB函数来完成这项工作:inv()。它可能比你的自定义循环更快。