Main Content

함수를 다른 함수에 입력값으로 전달하기

함수 핸들을 함수 함수(Function Functions)라고 하는 다른 함수에 대한 입력 인수로 사용할 수 있습니다. 이러한 함수는 특정 범위의 값에 대해 수학 표현식을 실행합니다. 일반적으로 함수 함수(Function Functions)에는 integral, quad2d, fzero, fminbnd 등이 있습니다.

예를 들어, 0부터 5까지의 자연 로그에 대한 적분을 구하기 위해서는 log 함수에 대한 핸들을 integral에 전달합니다.

a = 0;
b = 5;
q1 = integral(@log,a,b)
q1 = 3.0472

마찬가지로 sin 함수와 exp 함수의 적분을 구하기 위해서는 해당 함수에 대한 핸들을 integral에 전달합니다.

q2 = integral(@sin,a,b)
q2 = 0.7163
q3 = integral(@exp,a,b)
q3 = 147.4132

익명 함수에 대한 핸들을 함수 함수에 전달할 수도 있습니다. 익명 함수는 프로그램 파일을 필요로 하지 않는, 단일 라인 표현식 기반 MATLAB® 함수입니다. 예를 들어, 다음과 같이 범위 [0,Inf]에 대해 x/(ex-1)의 적분값을 계산합니다.

fun = @(x)x./(exp(x)-1);
q4 = integral(fun,0,Inf)
q4 = 1.6449

입력값으로 함수를 받는 함수(함수 함수(Function Functions)라고 함)는 함수 핸들과 연결된 함수에 특정 숫자의 입력 변수가 있을 것으로 예상합니다. 예를 들어, integral이나 fzero를 호출하는 경우 함수 핸들과 연결된 함수에는 정확하게 하나의 입력 변수만 있어야 합니다. integral3을 호출하는 경우 함수 핸들과 연결된 함수에는 세 개의 입력 변수가 있어야 합니다. 더 많은 변수가 있는 함수 함수(Function Functions)를 호출하는 방법에 대한 자세한 내용은 함수를 파라미터화하기 항목을 참조하십시오.

관련 예제

세부 정보