(以下はScilab 5.5.2を元に記載しています。)
タイトルの通りです。Scilabに限らず、多くのインタプリタ処理をする言語では,ループ計算は遅くなります。 下記に示すのはforループを使用する場合と使用しない場合でどれぐらい計算スピードが変わるかの例です。どちらも、
$$J=\sum_{i=1}^{2*10^6}\frac{1}{i}$$
を計算しています。
//-------------------- for loop --------------------//
clear
timer();
J = 0;
for i = 1:2000000;
J = J + 1/i;
end
J;
timing = timer();
disp('time of for loop (sec): ' + string(timing))
//--------------------------------------------------//
//------------- vector calc // no loop -------------//
clear;
timer();
i = [1:2000000];
J = sum((i./i)./i);
timing = timer();
disp('time of vector calc (sec): ' + string(timing))
//--------------------------------------------------//
Forループを使用した場合としない場合でかなり計算時間が違います。試してみて下さい。