私は実行に長時間(数時間)かかるいくつかのコードを持っており、if文で多くの比較を行っているためだと思います。私はそれをより速く走らせたいと思います。ランタイムを改善する助けとなる提案は誰にもありますか?誰かがコードを遅くすることについて別の考えを持っているなら、私はそれを試して修正することができます。Matlabの実行時間を改善しますか?
xPI = zeros(1,1783);
argList2 = zeros(1,1783);
aspList2 = zeros(1,1783);
cysList2 = zeros(1,1783);
gluList2 = zeros(1,1783);
hisList2 = zeros(1,1783);
lysList2 = zeros(1,1783);
tyrList2 = zeros(1,1783);
minList= xlsread('20110627.xls','CM19:CM25');
maxList= xlsread('20110627.xls','CN19:CN25');
N = length(pIList);
for i = 1:N
if (argList(i)>= minList(1) && argList(i) <= maxList(1)) ...
&& (aspList(i)>= minList(2) && aspList(i) <= maxList(2)) ...
&& (cysList(i)>= minList(3) && cysList(i) <= maxList(3)) ...
&& (gluList(i)>= minList(4) && gluList(i) <= maxList(4)) ...
&& (hisList(i)>= minList(5) && hisList(i) <= maxList(5)) ...
&& (lysList(i)>= minList(6) && lysList(i) <= maxList(6)) ...
&& (tyrList(i)>= minList(7) && tyrList(i) <= maxList(7))
xPI(i) = pIList(i);
argList2(i) = argList(i);
aspList2(i) = aspList(i);
cysList2(i) = cysList(i);
gluList2(i) = gluList(i);
hisList2(i) = hisList(i);
lysList2(i) = lysList(i);
tyrList2(i) = tyrList(i);
disp('passed test');
end
end
'indicesToCopy'配列を作るには、'& '要素論理的なもので、' && 'は論理的ではありません。 – Lambdageek
+1、私は100の賭けを賭けるでしょう。それはかなり速くなるだろうということです。 (ちょうどループについて話す)。 –
私はちょうどあなたの提案を試して、数時間から数分に大幅にランタイムを増加させました! –