Main Content

補助関数によるコードの再利用

補助関数は、コード内の別の場所で呼び出せるようにアプリ内で定義する MATLAB® 関数です。たとえば、ユーザーが編集フィールドの数値を変更した後やドロップダウン リストで項目を選択した後に、プロットを更新する場合などです。補助関数を作成すると、共通のコマンドを単一ソースにすることができ、冗長なコードを維持する必要がなくなります。

補助関数には、アプリ内からのみ呼び出せる "プライベート" 関数と、アプリの内部と外部のどちらからでも呼び出せる "パブリック" 関数の 2 種類があります。プライベート関数は一般に単一ウィンドウのアプリで使用され、パブリック関数は一般に複数ウィンドウのアプリで使用されます。

補助関数の作成

[コード ビュー] は、補助関数を作成するためのいくつかの異なる方法を提供しています。

  • [エディター] タブの [関数] ボタンの下半分からドロップダウン リストを展開します。[プライベート関数] または [パブリック関数] を選択します。

    Function drop-down list with options "Private Function" and "Public Function"

  • [コード ブラウザー][関数] タブを選択し、Plus ボタンのドロップダウン リストを展開し、[プライベート関数] または [パブリック関数] を選択します。

    Plus button drop-down list with options "Private Function" and "Public Function"

選択すると、App Designer によってテンプレート関数が作成され、カーソルがその関数の本体に置かれます。その後、関数名とその引数を更新し、関数本体にコードを追加できます。app 引数は必須ですが、app 引数の後にさらに引数を追加できます。たとえば、次の関数は関数 peaks の表面プロットを作成します。これは、プロットに表示するサンプル数を指定する追加の引数 n を受け入れます。

methods (Access = private)
    
        function updateplot(app,n)
            surf(app.UIAxes,peaks(n));
            colormap(app.UIAxes,winter);
        end

end

任意のコールバック内から関数を呼び出します。たとえば、次のコードは関数 updateplot を呼び出し、n の値として 50 を指定します。

updateplot(app,50);

補助関数の管理

[コード ブラウザー] での補助関数の管理は、コールバックの管理と似ています。補助関数の名前を変更するには、[コード ブラウザー][関数] タブで名前をダブルクリックして新しい名前を入力します。名前が変更された関数に対する参照はすべて、App Designer によって自動的に更新されます。

アプリに多数の補助関数がある場合は、[関数] タブの上部にある検索バーに名前の一部を入力することによって、特定の関数をすばやく検索して移動できます。入力を始めると、[関数] タブがクリアされ、検索に一致する項目のみが表示されます。

Functions tab of the Code Browser. The search bar contains the text "plot", and the list of functions below shows the function "updateplot(app,n)" with the text "plot" highlighted.

検索結果をクリックし、関数をスクロールして表示します。検索結果を右クリックして [移動] を選択すると、関数にカーソルが置かれます。

補助関数を削除するには、[関数] タブで名前を選択して Delete キーを押します。

例: プロットを初期化し更新されたデータを表示する補助関数

このアプリでは、2 つのプロットを初期化してコンポーネントのコールバックでそのいずれかを更新する補助関数の作成方法を示します。アプリでは、アプリの起動時、StartupFcn コールバックの最後に関数 updateplot が呼び出されます。ユーザーが列を並べ替えるかテーブル内の値を変更すると、UITableDisplayDataChanged コールバックは同じ関数を呼び出していずれかのプロットを更新します。

関連するトピック