Main Content

関数ハンドルを使用したローカル関数の呼び出し

この例では、ローカル関数へのハンドルを作成する方法を説明します。関数がローカル関数へのハンドルを返す場合、メイン関数の外部にあるローカル関数を呼び出すことができます。この方法により、1 つのファイルに複数の呼び出し可能な関数をもつことができます。

作業フォルダー内のファイル ellipseVals.m に次の関数を作成します。この関数はローカル関数へのハンドルをもつ struct を返します。


% 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 を使用して、すべてのローカル関数から関数ハンドルの cell 配列を自動的に作成することができます。この方法は、ローカル関数の名前を追加、削除または変更する必要がある場合に便利です。

参考

関連する例

詳細