만약 필요에 의해서
와 같이 코딩해야한다고 생각하자.
물론 예제니까 간단하게 잡았지만, 100번째정도까지만 가도 기절할 지도 모를일이다
물론 구조체나 배열 등등을 적절히 쓰면 잘 해결되는 경우도 있다.
그러나 어쩔 수 없는 경우라는 것도 있고, 또 속도에 큰 문제가 없다면
'eval '명령어로 간단히 해결할 방법이 있는데, 머리를 싸매고 앉아있을 필요는 없지 않겠나...
먼저 이해해야할 명령어가
num2str 이라는 명령어다. 이 명령어는 당연히 발음나는데로 읽어도 그 뜻을 대강 짐작할 수 있는데
num2str(i)
|
이렇게 입력하면 숫자를 문자처럼 인식하게 하는 명령어다
이제 아래 코드를 보자.
아까 의도가 A1어쩌고 부터 A9어쩌고까지 직접 코드를 편집하기는 꽤나 귀찮다는데서 출발했다.
이제 eval 명령어를 직접 코딩했는데...
for 문 이야 당연히 1부터 9까지 돌아줘야 할 것이고, 곳곳에 보이는
' num2str(i) '
|
이 명령어가 1-9라는 것을 인식하게 해준다. 이때 조심해야할 것은 MATLAB 6버젼 이후부터는 num2str(i) 앞 뒤로 꼭 한 칸씩 띄어주어야 한다.
eval([' '])
|
이것이 eval의 기본 형이며, 그 안에 문장을 넣어주면 된다. 본래 "eval"명령은 위의 형식에서 ' ' 사이에 들어가 있는 문장을 MATLAB Command Window에서 입력한것처럼 실행해 주는 명령이다. 그러므로 ' num2str '이랑 적절히 만나서 수십번을 타이핑해야할지도 모르는 프로그램 코드를 간단히 줄여줄 수 있다.
아참, Transpose A를 의미하는 MATLAB 명령어인 A' 같이 " ' " 기호를 eval안에서 쓰고 싶다면 연달아 두면 쓰면 된다.
예전에 가끔은 C 코드를 짤때, 숫자만 바뀌면서 꽤 길게 프로그램을 짜야하는 경우
MATLAB에서 for 문과 저 eval 명령어로 간단하게 C 코드를 display 하게 해서
긁어서 사용했던적이 있었는데... 그럴때도 꽤나 유용했다.(뭐 본래 목적은 아니지만^^)
티스토리로 이전하면서 몇몇 글들을 이렇게 옮기고 있습니다.
'Software > MATLAB' 카테고리의 다른 글
미분(차분) 및 적분하기 (14) | 2009.04.15 |
---|---|
sptool을 이용한 간단한 필터적용법 (filter) (6) | 2009.04.15 |
cftool 명령으로 Curve Fitting 간단히 하기 (2) | 2009.04.15 |
Figure에서 Legend사용시 아랫첨자 구현하기 (0) | 2009.04.15 |
Simulink에서 Annotation 사용하기 (4) | 2009.04.15 |
MATLAB에서 문자연산하기 (6) | 2009.04.15 |
Short Cuts 활용하기 (2) | 2009.04.15 |