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

조회 수: 7 (최근 30일)
Makoto Nakagawa
Makoto Nakagawa 2019년 5월 30일
답변: Makoto Nakagawa 2019년 7월 9일
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された値になっていました。

채택된 답변

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 配布에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!