본문 바로가기
programming language/MATLAB

MATLAB String evaluation, eval()

by __observer__ 2010. 1. 17.
반응형

MATLAB 다양한 능력중에 string evaluation 관련한 함수인 eval 이용해 보자. 가령 아래와 같은 예를 수행해 보고 싶은 경우가 있다.  

A1 이라는 변수에는 1행 1열의 uniform sample 을 저장하고
A2 이라는 변수에는 2행 2열의 uniform sample 을 저장하고
A3 이라는 변수에는 3행 3열의 uniform sample 을 저장하고
…. A100 이라는 변수에는 100 행 100 열의 uniform sample 을 저장하고 싶다고 해보자. 

뭐 변수가 한 두개라면 그냥 몇줄 쓰면 되니 그리 문제될게 없지만, 이 경우처럼 100 개나 되는 변수에 저 값들을 일일이 할당한다는건 비효율 적이라는건 누구나 알 수 있다. 이런 경우 eval() 함수를 이용하면 너무나 간단히 위 문제가 해결 된다.  

for n = 1:100
       eval(['A' num2str(n) ' = rand(n)'])
end  

위 코드가 다다 너무나 간단하다 ㅋㅋ
workspace에 보면 A1~A100 의 변수가 생긴걸 확인 할 수 있을 것이다. 위 코드 중에 num2str 함수는 숫자를 문자로 바꿔주는 함수이고 rand 함수는 0~1 사이의 uniform random variable 을 n 행 n 열로 생성하는 함수이다.

반응형

댓글