関数ハンドルの使い方 †そもそも関数ハンドルとは †functionのそのものの情報を格納するデータ型.後に間接的に呼び出すことが可能になる. % (例) セル配列 cell_array の個々のセル要素の空白判定 id = cellfun(@isempty, cell_array) 使い方 †@で関数ハンドルを生成・取得して,割り当てた変数をその関数のエイリアス(別名)として使う. fh = @function_name; foo = fh(varargin_of_function); 例として,以下の2つはどちらも同じ結果を得る. % 関数ハンドル使用 if (hogehoge) fh = @min else fh = @max end foo = fh(var) % 関数ハンドル不使用 if (hogehoge) foo = min(var); else foo = max(var); end 上記のパターンだと恩恵は少ないが, hogege = my_function(hogehoge,@function_name) のように,functionの引数として関数ハンドルを使うと,functionの汎用性が高くなる. 参考 †@は下記のように無名関数の定義としても使える. |