我有一个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(:..."花费最多时间?
答案 0 :(得分:-2)
有一个MATLAB函数来完成这项工作:inv()。它可能比你的自定义循环更快。