본문 바로가기
Programming/Matlab, Octave, Scilab

[Matlab] for loop perfomance

by 도파공 2010. 5. 16.
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
반응형

댓글