function作成 〜汎用性向上と適切な管理〜

自作のfunctionを作成するにあたってのメモ書き.

functionファイルをどこに格納するか

デフォルトではfunctionファイルも拡張子が.mで,一般のファイルと初見では区別がつかない.
かといって,メインで実行に関するファイル同じ場所に作成しておくのは管理上よろしくない.
どの分野でも活用できるfunctionは,root権限の場所に自作functionのディレクトリを作成し,パスを(永久的に)通しておくとよい.
ある特定の用途では使用しないfunctionは,functionのファイルをまとめたディレクトリを作成し,毎度一時的にパスを通すのが最善…な気がする.

addpath('./localfunc') % 一時的にパス追加,メインルーチンの最初に書く
rmpath('./localfunc') % パスから除く,メインルーチンの最後に書く

addpathのpath追加は,一度MATLABを閉じると効果が消える.

入力引数の数を可変に - nargin, varargin

narginを使うことによって,入力引数の個数を調整することが可能.
引数の数による場合分けができて効率が良い.
narginchkまたはif〜narginで数の確認を行うことができる.
例えばfunctionの中に以下の文を挿入すると, 引数が4個と5個の場合にのみ実行され,その他はエラーメッセージが出現する.

narginchk(4,5)
if nargin < 3 || nargin > 6;
    error('Invalid number of arguments')
end

vararginは便利だが,自作functionでは可読性を損なうことも.
使用方法には注意が必要. functionファイルの1行目にvararginとvarargoutの単純な一文を書き,後に変数を割り当てる.

functuion varargout = myfunction000(varargin)
var01 = varargin{1};
var02 = varargin{2};
var03 = varargin{3};

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2017-10-10 (Tue) 07:03:49 (10d)