ドキュメンテーション

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

hasChangedFrom

指定した値からのデータの変化を検出する

説明

以下の両方の条件が満たされている場合に、tf = hasChangedFrom(u,v)true を返します。

  • 前のタイム ステップの開始時における u の値が v に等しい

  • 現在のタイム ステップの開始時における u の値が v に等しくない

同じタイム ステップ内で複数の入力イベントが発生する場合は、入力イベント間で u の値が値 v から変化したときに、hasChangedFromtrue を返します。

1 つ目の引数 u には次を指定できます。

インデックスには、スカラー値として評価される数値または式を指定できます。

2 つ目の引数 v には、u と同程度の値として解決される任意の式を指定できます。

  • u がスカラーの場合、v はスカラー値として解決されなければなりません。

  • u が行列の場合、v は、u と同じ次元の行列値として解決されなければなりません。u の前の値が v に等しく、最後のタイム ステップまたは入力イベント以降に u のいずれかの要素の値が変化した場合に、hasChangedFrom 演算子は true を返します。

    あるいは、C をアクション言語として使用するチャートで、v をスカラー値として解決することができます。チャートはスカラー拡張を使用して、要素がすべて v によって指定されている値に等しい行列と u を比較します。スカラー拡張を使用したスカラーから非スカラーへの変換を参照してください。

  • u が構造体の場合、v は、フィールドの仕様が u と正確に一致する構造体の値として解決されなければなりません。u の前の値が v に等しく、最後のタイム ステップまたは入力イベント以降に u のいずれかのフィールドの値が変化した場合に、hasChangedFrom 演算子は true を返します。

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

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

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

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

すべて展開する

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

hasChangedFrom(struct,structValue)

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

hasChangedFrom(struct.field,5)

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

hasChangedFrom(M,matrixValue)

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

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

hasChangedFrom(M(1,3),7)

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

hasChangedFrom(M[0][2],7)

ヒント

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

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

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

R2007a で導入