Main Content

functions

関数ハンドルに関する情報

説明

s = functions(fh) は、関数ハンドルに関する情報を返します。この情報には、関数名、種類およびファイル名が含まれます。

関数 functions は、クエリやデバッグの目的でのみ使用してください。

メモ

プログラムでは functions を使用しないでください。この動作は、将来の MATLAB® のリリースで変更される可能性があります。

すべて折りたたむ

関数ハンドルを作成し、その情報を表示します。

fh = @cos;
s = functions(fh)
s = struct with fields:
    function: 'cos'
        type: 'simple'
        file: ''

無名関数の関数ハンドルを作成します。その情報と、必須の変数の値を表示します。

関数 x2 + y のハンドルを作成し、そのハンドルを使用して関数を呼び出します。

y = 7;
fh = @(x)x.^2+y;
z = fh(2)
z =

    11

関数ハンドルに関する情報を表示します。

s = functions(fh)
s = 

            function: '@(x)x.^2+y'
                type: 'anonymous'
                file: ''
           workspace: {[1x1 struct]}
    within_file_path: '__base_function'

関数ハンドルには、必要となる y の値が含まれています。

s.workspace{1}
ans = 

    y: 7

ローカル関数および入れ子関数のハンドルを返す関数を作成します。それらの情報を表示します。

作業フォルダー内のファイル functionsExample.m に次の関数を作成します。関数は入れ子関数とローカル関数のハンドルを返します。

function [hNest,hLocal] = functionsExample(v)

hNest = @nestFunction;
hLocal = @localFunction;

    function y = nestFunction(x)
        y = x + v;
    end

end

function y = localFunction(z)
y = z + 1;
end

関数を呼び出します。

[hNest,hLocal] = functionsExample(13)
hNest = 

    @functionsExample/nestFunction


hLocal = 

    @localFunction

入れ子関数のハンドルに関する情報を表示します。

s1 = functions(hNest)
s1 = 

     function: 'functionsExample/nestFunction'
         type: 'nested'
         file: 'C:\work\functionsExample.m'
    workspace: {[1x1 struct]}

ローカル関数のハンドルに関する情報を表示します。

s2 = functions(hLocal)
s2 = 

     function: 'localFunction'
         type: 'scopedfunction'
         file: 'C:\work\functionsExample.m'
    parentage: {'localFunction'  'functionsExample'}

入力引数

すべて折りたたむ

クエリするハンドル。関数ハンドルとして指定します。

出力引数

すべて折りたたむ

関数ハンドルに関する情報。構造体として返されます。構造体には、次のフィールドがあります。

フィールド名

フィールドの詳細

function

関数名。ハンドルに関連付けられている関数が入れ子関数である場合、関数名は main_function/nested_function の形式をとります。

type

関数の種類。たとえば、'simple''nested''scopedfunction''anonymous'

file

ファイル拡張子を含む関数の絶対パス。

  • 関数がローカル関数または入れ子関数である場合、file は main 関数の絶対パスです。

  • 関数が組み込み MATLAB 関数である場合、file は空の文字配列 ('') です。

  • 関数が無名関数であり、コマンド ラインまたは MATLAB パス上にないファイルで定義される場合、file は空の文字配列 ('') です。

  • 関数が無名関数であり、MATLAB パス上にあるファイルで定義される場合、file はファイルへの絶対パスです。

  • 保存済みの関数ハンドルを読み込んだ場合、file は空の文字列配列 ('') です。

ハンドルに関連付けられている関数の種類により、構造体には追加のフィールドがあります。たとえば、ローカル関数には parentage フィールド、無名関数には workspace フィールドがあります。s の情報は、クエリおよびデバッグの目的にのみ使用してください。

拡張機能

バージョン履歴

R2006a より前に導入