본문 바로가기
programming language/MATLAB

MATLAB 함수 만들기, inline, function handle

by __observer__ 2011. 3. 21.
반응형

어느 컴퓨터 언어나 반복되는 부분은 함수화 하기 마련 입니다. MATLAB 도 예외는 아니죠.

 

이번 포스팅에서는 MATLAB 에서 함수 작성 방법에 대해 알아보도록 하겠습니다.

 

MATLAB 에서는 함수를 만들 수 있는 방법이 3 가지 정도 됩니다.

 

첫 번째로는 함수 파일을 만드는 방법이고, 두 번째로는 inline() 객체를 이용하여 함수화 하는 방법, 세 번째로는 function handle 을 이용하는 방법 입니다.

 

함수 파일을 만드는 방법부터 설명 드리도록 하겠습니다. 예를 들어 설명해 보죠.

 

a, b 라는 두 값을 입력 받아서 그 합과 차를 출력하는 함수를 만들어 보도록 하죠. 함수는 function 이라는 키워드를 먼저 써줘야 합니다.

 

그리고 다음 그림과 같이 구성을 합니다. 함수 이름은 func_add_minus 로 했고 괄호 안의 a, b 가 입력 입니다. 그리고 y, z 가 출력이죠.

 

 

이렇게 써주고 마지막으로 <파일이름과 똑 같은 파일명>.m 으로 저장을 해 줍니다. 파일명에는 특수 기호 등은 들어갈 수 없고 한글도 안됩니다.

 

위 함수의 사용 방법은 다음과 같습니다.

 

 

첫 번째 실행을 보시면 결과가 하나만 나오죠. 그리고 두 번째처럼 출력 값으로 x 만 지정을 하니깐 합만 나오고, 세 번째 실행처럼 출력을 두 개 설정해 주면 정상적으로 합과 차가 나오게 됩니다.

 

다음으로는 inline() 이라는 객체를 이용해 보겠습니다.

 

inline('식', '변수1', '변수2', ….) 의 형태로 표현됩니다. 이렇게 쓰니깐 잘 모르겠죠~

 

예를 들어 설명 해보죠.

 

 

위 수식과 같은 입력이 x, y 인 2차 함수를 inline()으로 표현하면 다음 그림과 같이 됩니다. f(2,3) 을 넣으니깐 20 이 나오고 x=[1 2 3], y=[3 4 5] 를 넣었더니 [8 22 44] 가 나오는 군요.

 

 

마지막으로 function handle 을 이용해 보겠습니다. 원래 function handle 이란 어떤 함수를 간접적인 방법으로 접근하는 건데, 임의의 함수를 정의 할 수도 있는 굉장히 편리한 방법 입니다.

 

위에서 썼던 수식을 다시 한번 이용해 보도록 하죠. 다음 그림을 보시면 이해가 쉬울 겁니다.

 

 

@(x, y) 에서 x, y 가 변수를 정의 하는 부분입니다. 그리고 뒤에 사용하고자 하는 식{3.*x.^2 + y .* x +2} 을 써주면 되는 거구요.

 

사용법은 inline() 객체로 정의했던 것과 동일 합니다. 너무 쉽죠? ^^;

 

반응형

댓글