localfunctions
MATLAB ファイル内のすべてのローカル関数の関数ハンドル
説明
fcns = localfunctions
は、関数ハンドル fcns
の cell 配列を、現在のファイルのすべてのローカル関数に返します。
コマンド ラインまたは無名関数のコンテキストではローカル関数を定義できません。このため、これらのコンテキストから localfunctions
を呼び出すと、空の cell 配列が取得されます。cell 配列内で、localfunctions
は、順序が未定義の関数ハンドルを返します。
例
関数ファイル内のローカル関数のハンドルの作成
作業フォルダー内のファイル computeEllipseVals.m
に次の関数を作成します。この関数は、すべてのローカル関数のハンドルが含まれた cell 配列を返します。
function fh = computeEllipseVals fh = localfunctions; 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
コマンド プロンプトで、ローカル関数のハンドルをもつ cell 配列を取得する関数を呼び出します。
fh = computeEllipseVals
fh = 3x1 cell array { @computeFocus} {@computeEccentricity} { @computeArea}
ハンドルを使用してローカル関数を呼び出し、楕円の面積を求めます。computeArea
関数ハンドルは、cell 配列内の 3 番目の要素です。
fh{3}(3,1)
ans = 9.4248
スクリプト ファイル内のローカル関数のハンドルの作成
R2016b 以降では、スクリプト内にローカル関数を含めることができます。したがって、関数 localfunctions
を使用してスクリプトやコマンド プロンプトから呼び出せる関数ハンドルを作成できます。
作業フォルダー内のファイル mystats.m
に次のスクリプトを作成します。このスクリプトは、すべてのローカル関数のハンドルが含まれた cell 配列を作成します。
x = [1 3 5 7 9 10 8 6 4 2 0 -2]; avg = mymean(x) fh = localfunctions; med = fh{2}(x) % equivalent to med = mymedian(x,n) function a = mymean(v) n = length(v); a = sum(v)/n; end function m = mymedian(v) n = length(v); w = sort(v); if rem(n,2) == 1 m = w((n + 1)/2); else m = (w(n/2) + w(n/2 + 1))/2; end end
スクリプトを実行します。MATLAB® はローカル関数 mymean を直接呼び出して平均を計算し、関数ハンドルを介してローカル関数 mymedian
を呼び出して中央値を計算します。
mystats
avg = 4.4167 med = 4.5000
コマンド プロンプトで、ローカル関数 mymean
のハンドルを使用して呼び出します。スクリプトの変数にはコマンド プロンプトからアクセスできます。mymean
関数ハンドルは、cell 配列内の 1 番目の要素です。
x2 = [1 1 2 6 24 120 720 5040]; fh avg2 = fh{2}(x2)
fh = 2x1 cell array { @mymean} {@mymedian} avg2 = 15
バージョン履歴
R2013b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)