Programming/Matlab, Octave, Scilab
[Matlab] for loop perfomance
도파공
2010. 5. 16. 09:07
728x90
반응형
clc
clear
N=1000;
seq = randn(1,N);
% Vectorized solution
tic;
s = sum(seq);
Vectorized = toc
% For loop
tic;
for f = seq
s = s + f;
end
For1 = toc
% For loop w/scalar indeces
tic;
for i = 1:N
s = s+seq(i);
end
For2 = toc
Vectorized/For1
For2/For1
실행결과
Vectorized = 3.2509e-004
For1 = 0.0025
For2 = 2.5483e-005
Vectorized/For1 = 0.0896
For2/For1 = 0.0070
일반적으로 for루프를 돌리면 Matlab에서는 속도가 떨어진다. 그래서 코드를 벡터형식으로 변환을 해주면 속도가 빨라진다. 이외에도 c/c++ 처럼 다른 언어로 처리하여 import 하는 방법도 있다.
728x90
반응형