Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

While Iterator

論理式が true の間、サブシステムの実行を繰り返す

  • ライブラリ:
  • Ports & Subsystems

  • While Iterator block

説明

While Iterator ブロックは、Subsystem ブロック内に配置されると、入力条件の値が true すなわち 1 である限り、現在のタイム ステップ中、サブシステムの内容を繰り返し実行します。このブロックは、プログラミング言語の while ループに相当するブロック線図を実装するために使用します。

While Iterator Subsystem ブロックは、While Iterator ブロックとともに事前構成されています。Subsystem ブロックに While Iterator ブロックを配置することで Atomic サブシステムになります。

端子

入力

すべて展開する

論理条件の評価結果をもつ信号。タイム ステップ中にサブシステムが外部でトリガーされることはないため、true (1) または false (0) としての条件の評価はサブシステム内で行われなければなりません。

信号のデータ型および値は次のようになります。

  • logical (boolean) — true (1) または false (0)。

  • 数値 — true (正または負の任意の数値) または false (0)。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point

初期論理条件をもつ信号。各タイム ステップの最初に次のことが行われます。

  • IC が false (0) の場合、サブシステムはタイム ステップ中に実行されません。

  • IC が true (値が 0 に等しくない) の場合、サブシステムは実行を開始し、cond 信号が true である限り実行を繰り返します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point

出力引数

すべて展開する

各タイム ステップ中の While Iterator Subsystem ブロックの実行回数をもつ信号。

データ型: double | int8 | int16 | int32

パラメーター

すべて展開する

タイム ステップ中に許容される最大反復回数を指定します。

-1

cond 信号が true である (値が 0 に等しくない) 間の反復回数。-1 を指定し、cond 信号が false (0) にならない場合、シミュレーションは無限ループで実行されます。この場合、シミュレーションを停止する唯一の方法は MATLAB® を終了することです。

整数

タイム ステップ中の最大反復回数。

プログラムでの使用

ブロック パラメーター: MaxIters
: 文字ベクトル
値: '5' | '-1' | '<integer>'
既定の設定: '5'

ブロックのタイプを選択します。

while

While Iterator ブロックには 2 つの入力、つまり cond (論理条件) 入力と IC (初期論理条件) 入力があります。IC 信号のソースは While Iterator Subsystem ブロックの外部になければなりません。

各タイム ステップの最初に次のことが行われます。

  • IC 入力が true の場合 (値が 0 に等しくない)、サブシステム内のブロックは cond 入力が true の間は実行を繰り返します。このプロセスは、cond 入力が true であり、反復回数が [最大反復回数] 以下である限り、タイム ステップ中に続行されます。

  • IC 入力が false の場合、While Iterator ブロックはサブシステムの内容を実行しません。

do-while

While Iterator ブロックには 1 つの入力、つまり cond (while 条件) 入力があります。

各タイム ステップでは、cond 入力が true である (値が 0 に等しくない) 間、サブシステムのブロックは実行を繰り返します。このプロセスは、cond 入力が true であり、反復回数が [最大反復回数] 以下である限り続行されます。

プログラムでの使用

ブロック パラメーター: WhileBlockType
: 文字ベクトル
: 'while' | 'do-while'
既定の設定: 'while'

タイム ステップ間でのブロックの状態の処理方法を選択します。

保持

タイム ステップ間でブロックの状態を保持します。ブロックの状態値はタイム ステップ間にわたって持続します。

リセット

各タイム ステップの最初および最初の反復ループが実行される前にブロックの状態を初期値にリセットします。

プログラムでの使用

ブロック パラメーター: ResetStates
: 文字ベクトル
: 'held' | 'reset'
既定の設定: 'held'

ブロックの実行回数をもつ信号の出力端子の表示を制御します。この端子からの信号の値は 1 で始まり、その後実行される反復のたびに 1 ずつインクリメントされます。

オフ

出力端子を削除します。

オン

反復回数をもつ信号の出力端子を表示します。

依存関係

このパラメーターを選択すると、[出力データ型] パラメーターが有効になります。

プログラムでの使用

ブロック パラメーター: ShowIterationPort
: 文字ベクトル
: 'off' | 'on'
既定の設定: 'off'

反復回数信号の出力データ型を選択します。この信号の値は、タイム ステップ中の反復回数と、タイム ステップ終了時の合計反復回数です。

int32

符号付き 32 ビット整数。

uint32

符号なし 32 ビット整数。

int16

符号付き 16 ビット整数。

uint16

符号なし 16 ビット整数。

int8

符号付き 8 ビット整数。

uint8

符号なし 8 ビット整数。

double

倍精度浮動小数点。

依存関係

このパラメーターを有効にするには、[反復回数の端子を表示] チェック ボックスをオンにします。

プログラムでの使用

ブロック パラメーター: OutputDataType
: 文字ベクトル
: 'int32' | 'unt32' | 'int16' | 'uint16' | 'int8' | 'uint8' | 'double'
既定の設定: 'int32'
R2006a より前に導入