ストレージクラスge​tsetのデータの扱​いについて

4 visualizzazioni (ultimi 30 giorni)
Makoto Nakagawa
Makoto Nakagawa il 30 Mag 2019
Risposto: Makoto Nakagawa il 9 Lug 2019
Simulink.Signalで、ストレージクラスをGetSetに指定した場合のデータ扱いについて質問です。
シミュレーションでは、他のストレージクラスと同様にDataStoreWriteでWriteした値は次の周期の
DataStoreReadでReadされますが、
カスタムコードで下記のように設定しても無視されて上記の動作をするのですが、これは仕様なのでしょうか。
int a ;
int get_A(void)
{
return a;
}
void set_A(int val)
{
a = 5;
}
カスタムコードではDataStoreWriteでのWrite値にかかわらず、一律5で更新するようにしていますが
このカスタムコードは無視されて、DataStoreWriteでWriteされた値になっていました。

Risposta accettata

Makoto Nakagawa
Makoto Nakagawa il 9 Lug 2019
自己レスです。
ヘルプの生成されたコードと MATLAB コードの相違点に下記記述がありました。
プロパティ値を変更する MATLAB クラス プロパティ アクセス メソッド
プロパティ アクセス メソッドをもつオブジェクトを使用するとき、シミュレーションの結果は MATLAB の結果と異なる場合があります。これらの違いは、オブジェクトが以下の場合に生じます。
  • エントリポイント関数への入力またはエントリポイント関数からの出力。
  • 外部関数に渡される、または外部関数から返される。
  • load を使用してメモリに読み込まれる。
以下の条件下では、結果が異なる場合があります。
  • get メソッドは格納されたプロパティ値から異なる値を返します。
  • set メソッドは入力値を変更してからプロパティに割り当てます。
  • get メソッドまたは set メソッドにはグローバル変数を変更したり、ファイルに書き込んだりする副作用があります。

Più risposte (0)

Categorie

Scopri di più su 配布 in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!