単一の App Designer アプリ内でのデータの共有
アプリを作成する場合、アプリのさまざまなコンポーネント間でデータを共有できます。プロパティはアプリ内のすべての関数およびコールバックからアクセスできるため、アプリ コンポーネント間でデータを共有するには、プロパティを使用する方法をお勧めします。たとえば、プロパティに値を保存し、別のアプリ コンポーネントを使用してその値を更新できます。
アプリ プロパティを定義すると、次の構文を使用してアプリ コード内の任意の場所からプロパティ値にアクセスできます。
app.Property
同様に、次の構文を使用して、アプリ UI コンポーネントの組み込みプロパティにアクセスできます。
app.Component.Property
代わりに複数のアプリ間でデータを共有する方法については、複数の App Designer アプリ間でのデータの共有を参照してください。
アプリ プロパティの定義
データをどの程度アクセス可能にするかに応じて、アプリ プロパティを private または public として定義できます。アプリ内でのみ共有するデータを保存する場合は、private プロパティを使用します。アプリの内部と外部で (データにアクセスする必要があるスクリプト、関数、その他のアプリなどと) 共有するデータを保存する場合は public プロパティを使用します。
[コード ビュー] は、プロパティを作成するためのいくつかの方法を提供しています。
[エディター] タブの [プロパティ] ボタンの下半分からドロップダウン リストを展開します。[プライベート プロパティ] または [パブリック プロパティ] を選択します。

[コード ブラウザー] の [プロパティ] タブをクリックし、
ボタンを使用してドロップダウン リストを展開し、[プライベート プロパティ] または [パブリック プロパティ] を選択します。
アプリ プロパティを作成するオプションを選択すると、App Designer によってプロパティの定義とコメントがアプリ コード内の properties ブロックに追加されます。
properties (Access = private) Property % Description end
properties ブロックは編集可能であり、プロパティの名前を変更したり、プロパティを説明するコメントを編集したりできます。たとえば、次の private プロパティは平均コストの値を格納します。
properties (Access = private) X % Average cost end
アプリの起動時にプロパティ値を設定する場合は、properties ブロックまたは startupFcn コールバックで既定値を指定できます。たとえば、アプリの起動時に次のプロパティの値は 5 になります。
properties (Access = private) X = 5 % Average cost end
プロパティに保存可能な値の型を制限するには、プロパティ定義内でデータ型をプロパティに関連付けます。たとえば、次のコードでは、X プロパティに代入される値は、double と互換性のある型でなければなりません。X プロパティは、代入された値を double 型として保存します。
properties (Access = private) X double = 5 % Average cost end
プロパティへのアクセス
アプリ プロパティを定義すると、構文 app.PropertyName を使用して、アプリ コード内の任意の場所からプロパティ値にアクセスしたり、プロパティ値を設定したりできます。たとえば、X プロパティの現在の値を取得し、その値を 10 に設定します。
y = app.X % Get the value of X app.X = 5; % Set the value of X
同じ構文を使用して、アプリの外部から public プロパティにアクセスすることもできます。
アプリ コンポーネントには組み込みプロパティもあります。たとえば、アプリに Button1 という名前のボタン コンポーネントが含まれている場合、app.Button1 を使用して Button オブジェクトにアクセスでき、app.Button1.Text を使用してボタンの組み込みの Text プロパティにアクセスできます。
例: プロット データおよびドロップダウン リストの選択肢の共有
1 つのコンポーネントを使用してアプリ プロパティの値を設定し、別のコンポーネントからそのプロパティにアクセスすることで、アプリ内でデータを共有できます。このサンプル アプリでは、ユーザーは編集フィールド コンポーネントを使用してプロットされたデータのサンプル サイズを設定し、ボタン コンポーネントをクリックして新しいサンプル サイズを使用してデータをプロットできます。
アプリの右側にプロットが表示されます。アプリの左側には、[Sample Size] 編集フィールド、[Colormap] ドロップダウン リスト、および [Update Plot] ボタンの 3 つのコンポーネントが表示されます。

すべてのコンポーネントからデータにアクセスできるようにするには、データをアプリ プロパティに保存します。この例では、アプリはプロット データを Z という名前の private プロパティに保存します。
classdef ConfigurePlotAppExample < matlab.apps.AppBase % ... properties (Access = private) Z = peaks(35); % Surface data to plot end % ... end
アプリ内の任意のコンポーネントまたは関数からアプリ プロパティの値にアクセスできます。この例では、アプリ内の plotsurface 関数は、データをプロットする際に Z プロパティの値にアクセスします。
function plotsurface(app) % Plot Z surf(app.UIAxes,app.Z); % Set the colormap cmap = app.ColormapDropDown.Value; colormap(app.UIAxes,cmap); end
アプリ ユーザーによるアプリの操作に応じて、アプリ プロパティの値を更新できます。この例では、アプリ ユーザーがサンプル サイズを変更すると、編集フィールドのコールバック関数によって Z の値が更新されます。
function SampleSizeEditFieldValueChanged(app,event) sampleSize = app.SampleSizeEditField.Value; % Update the Z property app.Z = peaks(sampleSize); end
アプリ ユーザーが [Update Plot] ボタンを押すと、そのコールバック関数が plotsurface 関数を呼び出して、Z の新しい値を使用してプロットを更新します。
次に、[Update Plot] ボタンのコールバックから plotsurface 関数を呼び出すことで、Z の新しい値を使用してプロットを更新できます。
function UpdatePlotButtonPushed(app,event) plotsurface(app); end