Matlab 사용자 정의 함수

Matlab는 사용자가 호출할 수 있도록 강력한 함수 라이브러리를 제공하지만, 사용자가 스스로 함수를 정의하는 것도 지원한다.본고는 범드버그대 교수인 Akos Ledeczi가 강의한 예시를 이용하여 Matlab에서 어떻게 함수를 사용자 정의하는지 설명하고자 한다.
우선,command 창에edit 명령을 입력하고 함수를 편집합니다.이 함수는 무작위로 3행 4열을 생성하는 행렬로 이 행렬의 원소 수치 범위는 0-1 사이이다.
function myRand
a = rand(3,4)
end

그 중에서function과end는 키워드이고function는 이 파일이 함수임을 나타내며,end는 함수체의 끝을 나타낸다.command window에서 myRand 명령을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
>> myRand
a =
    0.5688    0.3371    0.3112    0.6020
    0.4694    0.1622    0.5285    0.2630
    0.0119    0.7943    0.1656    0.6541

그리고 함수에 파라미터를 추가합니다.이 함수는 무작위로 3행 4열을 생성하는 행렬로 이 행렬의 원소 수치 범위는low-high 사이입니다.
function a = myRand(low, high)
a = low+rand(3,4)*(high - low);
end

그 중에서low와high는 함수체의 두 입력 매개 변수로 매트릭스 원소 수치 범위의 상한선과 하한선을 대표한다.a는 함수의 범위 값입니다.command window에서 myRand 명령을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
>> myRand(1,6)
ans =
    4.4461    1.4191    1.7619    5.9807
    4.7408    2.1449    5.1291    1.3909
    3.2527    5.5667    3.6917    3.2134

마지막으로 함수에 반환 파라미터를 하나 더 추가합니다.이 함수는 무작위로 생성된 행렬의 모든 요소를 더하여 그 총계를 되돌려줍니다.
function [a, s] = myRand(low, high)
a = low + rand(3,4)*(high-low);
v = a(:);
s = sum(v);
end

여기서 s는 새로 추가된 반환 매개 변수입니다.command window에서 myRand 명령을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
>> [x ss] = myRand(2,4)
x =
    3.1504    2.7063    2.0860    3.4634
    2.1196    3.6424    2.3380    3.2955
    2.4696    2.0308    3.2982    2.9018
ss =
   33.5021

지금까지 Matlab에서 함수를 간단하게 사용자 정의하는 방법은 소개되었습니다.Matlab은 흔히 볼 수 있는 for-loop과if-else 등 순환과 판단 구조를 지원하며 후속 블로그를 참고한다.


좋은 웹페이지 즐겨찾기