gpt4 book ai didi

matlab - 如何向量化以下matlab block

转载 作者:行者123 更新时间:2023-12-02 05:45:33 25 4
gpt4 key购买 nike

假设 A 有边界 (1:2,1:2,1:numfoo ),如何向量化以下几行:

W = zeros( 2, 2, numfoo );
for i = 1:numfoo
temp(1:2,1:2) = inv( A(1:2,1:2,i) );
W(1:2,1:2,i) = ( temp * (temp') );
end

TYIA!

最佳答案

由于您的矩阵大小仅为 2,因此您可以使用显式表达式对代码进行矢量化。 https://en.wikipedia.org/wiki/Inverse_of_a_matrix#Inversion_of_2.C3.972_matrices enter image description here

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];

我测试了它,它给出了相同的结果,并且加速了100倍

Elapsed time is 1.070547 seconds.
Elapsed time is 0.012767 seconds.

关于matlab - 如何向量化以下matlab block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9106547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com