반응형
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 열로 생성하는 함수이다.
반응형
'programming language > MATLAB' 카테고리의 다른 글
conv(), filter(), 인수분해 전개 (0) | 2011.03.01 |
---|---|
Matlab Script coding tips, cell mode (0) | 2011.02.23 |
MATLAB tip, Shortcuts 을 이용해 보자 (0) | 2011.02.08 |
MATLAB movie() 함수를 이용하여 움직이는 그래프를 만들어보자 (12) | 2010.01.19 |
MATLAB filter, filtic 함수를 이용한 이산 시스템 응답 (609) | 2010.01.13 |
MATLAB Upsample 과 FFT (4) | 2010.01.10 |
MATLAB 음성 파일 읽기, 재생 (0) | 2010.01.08 |
변수의 크기를 알아보자 (0) | 2010.01.08 |
댓글