ブロックの名前を保存するだけなら、はい。いくつかのデータとわかりやすい名前が必要な場合、構造は次のように機能すると思います。
data = struct([blkName 'Values'],[]);
set_param(gcb,'UserData',data);
次に、使用するデータを取得すると、
ud = get_param(gcb,'UserData');
% ud.([blkName 'Values']) <- your data
appdata
または、グローバルストレージを使用できます。
setappdata(0,[blkName 'Values'],data);
data = getappdata(0,[blkName 'Values']);
または、実行時に関数を書き直して、必要な名前の変数yickを作成することもできますが、同様のことが行われているのを見てきました。チッ!
編集ダイアログ
のUserData
コールバックに何度も使用した方法なので、うまくいくと確信していますが、アプリケーションを完全には理解していない可能性があります。:-)
EDIT
モデルをロードするたびにデータを保持する必要がある場合は、UserDataPersistent
パラメータを に設定する必要があります'on'
。これは面倒ですが、モデルが閉じられてメモリからフラッシュされた後に何が起こったかを忘れるかどうかを選択するために必要な機能です。これはあなたのユース ケースでpersistent
あるため、m-script 内の変数は、Matlab が終了すると忘れられるため機能しません。Matlab セッション間で永続化するには、 setprefのように使用する必要があると思います。