[英]Simple Speed-up of code
众所周知,MATLAB在for循环中工作缓慢。 我试图将以下代码向量化,但没有成功。 也许我的实现是错误的。
for I = NS2:-1:1
A = 0;
for J=1:8
A = A + KS2(J,I)*FA(J);
end
S2 = S2 + ( SS2(1,I)*sin(A) + SS2(2,I)*cos(A) );
end
其中:FA =矩阵1x8
KS2 =矩阵8x25
SS2 =矩阵2x25
A =标量
S2 =标量
我尝试以这种方式进行改进:
A = 0;
J = 1:8;
for I = NS2:-1:1
A = FA(1,J)*KS2(J,I);
S2 = S2 + ( SS2(1,I)*sin(A) + SS2(2,I)*cos(A) );
end
但是,此改进的运行时类似于原始代码。
尝试以下操作(无循环):
A = (FA*KS2).'; %'# A is now 25-by-1
S2 = SS2(1,:)*sin(A) + SS2(2,:)*cos(A);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.