간단한 작업을 수행하고자 할 때에는 이전에 소개한 명령어들을 MATLAB의 명령창에서 명령을 직접 입력하여 그 결과를 확인할 수 있다. 하지만 명령어들의 수가 많아지는 경우 혹은 전에 내렸던 명령들 중에서 변수 한두 개의 값만 바꿔서 다시 수행할 필요가 있다던가 하는 경우에는 다시 일일이 명령창에서 명령들을 입력한다는 것은 매우 번거로울 것이다. 이러한 경우에는 이들 명령어들의 묶음을 파일로 저장한 후 이 파일에서 명령어들을 읽어서 그대로 수행하도록 하는 기능이 유용하다. MATLAB에서는 이러한 기능을 지원하며 이 경우 자체적으로 지원하는 텍스트 에디터 창을 이용한다. M화일이라는 것은 이렇게 작성된 파일의 확장자가 ".m"이기 때문에 붙여진 이름이다.

스크립트(script) M파일

 글로 읽는 것 보다 직접 수행하여 보면 무슨 말인지 쉽게 이해가 갈 것이다. MATLAB에서는 메뉴의 ‘파일-새 파일’을 누르거나, 툴바의 단추를 누르거나, 단축키 Ctrl+N을 누르면 명령어창 옆에 새 파일 편집창이 나타난다. 이 편집창에 다음과 같은 예제를 입력해 보라.


erasers=4;
pads=6;
tape=2;
items = erasers+pads+tape
cost = erasers*25 + pads*52 + tape*99
average_cost = cost/items


[그림 1] gnu octave 에서실행한 모습


그리고 적당한 폴더를 만든 후 이 파일명을 “ex1.m"으로 하여 저장한다. 그 후 이 파일을 실행하려면 다음과 같이 두 가지 방법이 있다.

① 편집창 메뉴에서 Debug>Run(단축키 [F5])을 선택하면 명령창에 현재 편집창에 있는 명령어들이 순차적으로 수행된다. (gnu octave에서도 동일한 방법으로 수행하 수 있다.)

② 명령창에서 파일을 저장한 폴더로 경로를 바꾼다음 (cd 명령어 이용) 명령줄에 다음과 같이 입력한다.


>>ex1


그러면 다음과 같은 결과를 보게 될 것이다.

[그림 2] gnu octave에서 예제를 실행한 모습


위의 세 줄은 명령의 끝에 세미콜론(;)이 있어서 실행 결과가 안 나타나는 것이고 뒤의 세 줄에는 세미콜론이 없으므로 그 실행결과가 명령창에 나타난 것이다. 따라서 세미콜론을 이용하여 중간 과정이나 중요치 않은 결과는 화면에 보여주니 않고 중요한 연산결과만을 화면에 나타나도록 할 수 있다. 작업공간에 여섯 개의 변수가 생성됨을 변수창에서 확인할 수도 있다. 위의 결과에서 알 수 있듯이 M파일에 기록된 명령어들이 ‘순차적으로’ 수행된다. 즉 명령창에서 다음과 같이 하나씩 명령을 내려주는 것과 완전히 동일한 작용을 한다.


>>erasers=4;
>>pads=6;
>>tape=2;
>>items = erasers+pads+tape
>>cost = erasers*25 + pads*52 + tape*99
>>average_cost = cost/items


따라서 이러한 M파일을 스크립트(script) M화일이라고 한다. 스크립트란 ‘대본’이라는 뜻이므로 배우가 대본에 쓰인 순서대로 대사를 읊어나가고 적힌 대로 연기를 하듯이 스크립트 M파일에 기록된 것을 MATLAB이 읽어서 순서대로 명령을 수행을 한다.



Posted by 살레시오