繁体   English   中英

简单的代码加速

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM