ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

hasChanged

最後のタイム ステップ以降のデータの変化を検出する

説明

現在のタイム ステップの開始時における u の値が、前のタイム ステップの開始時における u の値と異なる場合、tf = hasChanged(u)true を返します。同じタイム ステップ内で複数の入力イベントが発生する場合、hasChanged は入力イベント間で u の値が変化したときに true を返します。

引数 u には次を指定できます。

インデックスには、スカラー値として評価される数値または式を指定できます。u が行列であり、最後のタイム ステップまたは入力イベント以降、u のいずれかの要素の値が変化した場合に、hasChangedtrue を返します。u が構造体であり、最後のタイム ステップまたは入力イベント以降、u のいずれかのフィールドの値が変化した場合に、hasChangedtrue を返します。

u のスコープは、チャートのアクション言語によって異なります。

  • MATLAB® がアクション言語の場合: Input のみ

  • C がアクション言語の場合: InputOutputLocal または Data Store Memory

引数 u には、自明ではない式やカスタム コード変数は指定できません。

すべて展開する

最後のタイム ステップまたは入力イベント以降、構造体 struct のいずれかのフィールドの値が変化した場合に true を返します。

hasChanged(struct)

最後のタイム ステップまたは入力イベント以降、struct.field の構造体フィールドの値が変化した場合に true を返します。

hasChanged(struct.field)

最後のタイム ステップまたは入力イベント以降、行列 M のいずれかの要素の値が変化した場合に true を返します。

hasChanged(M)

最後のタイム ステップまたは入力イベント以降、行列 M の行 1、列 3 の要素の値が変化した場合に true を返します。

MATLAB をアクション言語として使用するチャートの場合:

hasChanged(M(1,3))

C をアクション言語として使用するチャートの場合:

hasChanged(M[0][2])

ヒント

  • チャートがデータに書き込む際にデータ値を変更しない場合、hasChanged 演算子は false を返します。

  • [チャート起動ごとに出力を初期化] チャート オプションを有効にした場合は、出力を hasChanged 演算子の引数として使用しないでください。このオプションが有効な場合、hasChanged 演算子は常に false を返します。詳細については、チャート起動ごとに出力を初期化を参照してください。

  • hasChanged 演算子は、Simulink® モデル内の Stateflow® チャートでのみサポートされています。

R2007a で導入