簡體   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