While Iterator
While Iterator Subsystem の制御ブロック
説明
While Iterator ブロックは、Subsystem ブロック内に配置されると、入力条件の値が true すなわち 1 である限り、現在のタイム ステップ中、サブシステムの内容を繰り返し実行します。このブロックは、プログラミング言語の while ループに相当するブロック線図を実装するために使用します。
While Iterator Subsystem ブロックは、While Iterator ブロックとともに事前構成されています。Subsystem ブロックに While Iterator ブロックを配置することで Atomic サブシステムになります。
例
Simulink Subsystem のセマンティクス
この一連の例では、さまざまなタイプの Simulink® Subsystem と、これらのサブシステムのシミュレーション実行時にどのようなセマンティクスが使用されるかという例を示します。各例では、モデルと、そのモデルの実行方法に関する違いを説明しています。
並列チャネルの電力割り当て
このモデルは、Find Nonzero Elementsブロックの機能を引き出す使用方法を示します。このブロックは、入力の非零値のインデックスを含む可変サイズの信号を出力します。
端子
入力
論理条件の評価結果をもつ信号。タイム ステップ中にサブシステムが外部でトリガーされることはないため、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
パラメーター
タイム ステップ中に許容される最大反復回数を指定します。
-1cond信号が true である (値が0に等しくない) 間の反復回数。-1を指定し、cond信号が false (0) にならない場合、シミュレーションは無限ループで実行されます。この場合、シミュレーションを停止する唯一の方法は MATLAB® を終了することです。- 整数
タイム ステップ中の最大反復回数。
プログラムでの使用
ブロック パラメーター: MaxIters |
| 型: 文字ベクトル |
値: '5' | '-1' | 引用符で囲んだ整数 |
既定の設定: '5' |
ブロックのタイプを選択します。
whileWhile Iterator ブロックには 2 つの入力、つまり
cond(論理条件) 入力とIC(初期論理条件) 入力があります。IC信号のソースは While Iterator Subsystem ブロックの外部になければなりません。各タイム ステップの最初に次のことが行われます。
IC入力が true の場合 (値が0に等しくない)、サブシステム内のブロックはcond入力が true の間は実行を繰り返します。このプロセスは、cond入力が true であり、反復回数が [最大反復回数] 以下である限り、タイム ステップ中に続行されます。IC入力が false の場合、While Iterator ブロックはサブシステムの内容を実行しません。
do-whileWhile Iterator ブロックには 1 つの入力、つまり
cond(while 条件) 入力があります。各タイム ステップでは、
cond入力が true である (値が0に等しくない) 間、サブシステムのブロックは実行を繰り返します。このプロセスは、cond入力が true であり、反復回数が [最大反復回数] 以下である限り続行されます。
プログラムでの使用
ブロック パラメーター: WhileBlockType |
| 型: 文字ベクトル |
値: 'while' | 'do-while' |
既定の設定: 'while' |
タイム ステップ間でのブロックの状態の処理方法を選択します。
保持タイム ステップ間でブロックの状態を保持します。ブロックの状態値はタイム ステップ間にわたって持続します。
リセット各タイム ステップの最初および最初の反復ループが実行される前にブロックの状態を初期値にリセットします。
プログラムでの使用
ブロック パラメーター: ResetStates |
| 型: 文字ベクトル |
値: 'held' | 'reset' |
既定の設定: 'held' |
ブロックの実行回数をもつ信号の出力端子の表示を制御します。この端子からの信号の値は で始まり、その後実行される反復のたびに 11 ずつインクリメントされます。
- オフ
出力端子を削除します。
- オン
反復回数をもつ信号の出力端子を表示します。
依存関係
このパラメーターを選択すると、[出力データ型] パラメーターが有効になります。
プログラムでの使用
ブロック パラメーター: ShowIterationPort |
| 型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
反復回数信号の出力データ型を選択します。この信号の値は、タイム ステップ中の反復回数と、タイム ステップ終了時の合計反復回数です。信号の最大許容値は [出力データ型] パラメーターによって決まります。たとえば、[出力データ型] を [int8] に設定した場合、信号の最大許容値は 27-1 です。しかし、[出力データ型] を [uint32] または [double] に設定した場合、信号の最大許容値は符号付き 32 ビット整数 (int32) の正の最大値に制限されます。各種整数クラスの値の範囲の詳細については、整数を参照してください。
int32符号付き 32 ビット整数。
uint32符号なし 32 ビット整数。
int16符号付き 16 ビット整数。
uint16符号なし 16 ビット整数。
int8符号付き 8 ビット整数。
uint8符号なし 8 ビット整数。
double倍精度浮動小数点。
依存関係
このパラメーターを有効にするには、[反復回数の端子を表示] チェック ボックスをオンにします。
プログラムでの使用
ブロック パラメーター: OutputDataType |
| 型: 文字ベクトル |
値: 'int32' | 'unt32' | 'int16' | 'uint16' | 'int8' | 'uint8' | 'double' |
既定の設定: 'int32' |
バージョン履歴
R2006a より前に導入以下によって生成される信号に信号のブレークポイントを追加して、反復サブシステムの特定の反復でシミュレーションを一時停止できるようになりました。
While Iterator Subsystem ブロック内の While Iterator ブロックの反復回数の出力端子
For Iterator Subsystem ブロック内の For Iterator ブロックの反復値の出力端子
For Each Subsystem ブロック内の For Each ブロックの分割インデックスの出力端子
以前のリリースでは、それらの場所にブレークポイントを追加することはできましたが、ブレークポイントでシミュレーションは一時停止せず、ブロック線図に無効と表示されていました。
同じ場所で、端子の値のラベルに反復回数が表示されるようになりました。以前のリリースでは、それらの場所にある端子の値のラベルには inaccessible と表示されていました。
例については、Debug Simulation of Iterator Subsystemを参照してください。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)

