함수 핸들을 사용하여 로컬 함수 호출하기
이 예제에서는 로컬 함수에 대한 핸들을 생성하는 방법을 보여줍니다. 함수에서 로컬 함수에 대한 핸들을 반환하는 경우 메인 함수 외부에서 로컬 함수를 호출할 수 있습니다. 이러한 접근 방식을 통해 하나의 파일에 호출 가능한 여러 함수를 포함할 수 있습니다.
현재 작업 폴더에 파일 ellipseVals.m
으로 다음 함수를 만듭니다. 이 함수는 로컬 함수에 대한 핸들이 포함된 구조체를 반환합니다.
% Copyright 2015 The MathWorks, Inc. function fh = ellipseVals fh.focus = @computeFocus; fh.eccentricity = @computeEccentricity; fh.area = @computeArea; end function f = computeFocus(a,b) f = sqrt(a^2-b^2); end function e = computeEccentricity(a,b) f = computeFocus(a,b); e = f/a; end function ae = computeArea(a,b) ae = pi*a*b; end
로컬 함수에 대한 핸들의 struct
를 가져오려면 이 함수를 불러옵니다.
h = ellipseVals
h = struct with fields: focus: @computeFocus eccentricity: @computeEccentricity area: @computeArea
핸들을 사용해 로컬 함수를 호출하여 타원의 면적을 계산합니다.
h.area(3,1)
ans = 9.4248
또는, localfunctions
함수를 사용하여 모든 로컬 함수의 함수 핸들로 구성된 셀형 배열을 자동으로 만들 수 있습니다. 이러한 접근 방식은 로컬 함수의 이름을 추가, 제거 또는 수정하려는 경우에 편리합니다.