For Iterator
For Iterator 子系统的控制模块

描述
放置在 Subsystem 模块中的 For Iterator 模块在当前时间步中重复执行子系统,直到迭代变量超过指定的迭代限制。您可以使用此模块实现与某种编程语言中的 for
循环等效的模块图。
For Iterator Subsystem 模块的输出不能是函数调用信号。模型更新时,Simulink® 显示错误消息。
示例
端口
输入
输入端口接受混合数值类型的数据。
如果输入端口值为非整数,则先截断为整数。
在内部将输入值强制转换为针对迭代变量输出端口指定的整数类型。
如果未指定输出端口,则输入端口值将强制转换为
int32
类型。如果输入端口值超过输出端口类型的最大值,则溢出将饱和。
数据类型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
输出
选中显示迭代变量参数复选框会将输出端口添加到此模块。
数据类型: double
| int8
| int16
| int32
| uint8
| uint16
| uint32
参数
选择如何处理时间步之间的模块状态。
- 保持
在时间步之间保持模块状态。模块状态值跨时间步保持不变。
- 重置
在每个时间步的开始和第一个迭代循环之前,将模块状态重置为其初始值。
编程用法
模块参数:ResetStates |
类型:字符向量 |
值:'held' | 'reset' |
默认值:'held' |
选择迭代次数的数据源。
- 内部
迭代限制参数的值确定迭代次数。
- 外部
N 端口的信号值确定迭代次数。信号源必须位于 For Iterator Subsystem 模块之外。
依赖关系
选择内部将显示并启用迭代限制参数。选择外部将添加标签为 N 的输入端口。
编程用法
模块参数: IterationSource |
类型:字符向量 |
值:'internal' | 'external' |
默认值:'internal' |
指定迭代次数。此参数支持存储类。您可以在模型资源管理器的基础工作区中,将命名常量定义为内置存储类 Define (custom)
类型的 Simulink.Parameter
对象。
5
对 For Iterator Subsystem 模块中的模块执行
5
次迭代。- 整数
指定一个整数或指定的常变量。
依赖关系
要启用此参数,请从迭代限制来源下拉列表中选择内部。
编程用法
模块参数:IterationLimit |
类型:字符向量 |
值:'5' | 用引号引起来的整数 |
默认值:'5' |
控制输入端口的显示。
- off
删除输入端口。
- on
添加标签为 Next_i 的输入端口以连接到外部迭代变量源。当前迭代中的输入值用作下一次迭代的迭代变量值。
依赖关系
要启用此参数,请选择显示迭代变量参数,这也会显示标签为 1:N 的输出端口。
编程用法
模块参数:ExternalIncrement |
类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
使用循环的当前迭代器值控制输出端口的显示。
- on
将标签为 1:N 的输出端口添加到 For Iterator 模块。
- off
删除输出端口。
依赖关系
选择此参数将启用在外部设置下一个 i (迭代变量) 参数。
编程用法
模块参数:ShowIterationPort |
类型:字符向量 |
值:'on' | 'off' |
默认值:'on' |
选择 0
或 1
作为初始迭代序号。
- 从 1 开始
迭代序号从 1 开始。
- 从 0 开始
迭代序号从 0 开始。
编程用法
模块参数:IndexMode |
类型:字符向量 |
值:'One-based' | 'Zero-based' |
默认值:'One-based' |
设置从迭代序号端口输出的迭代值的类型。迭代变量允许的最大值由索引模式和迭代变量数据类型参数确定。例如,如果将索引模式设置为从 1 开始,并将迭代变量数据类型设置为 int8,则迭代变量允许的最大值为 27-1。但是,如果将迭代变量数据类型设置为 uint32 或 double,迭代变量允许的最大值将限制为有符号 32 位整数 (int32
) 的最大正值。有关不同整数类的值范围的详细信息,请参阅整数。
- int32
将数据类型设置为
int32
。- uint32
将数据类型设置为
uint32
。- int16
将数据类型设置为
int16
。- uint16
将数据类型设置为
uint16
。- int8
将数据类型设置为
int8
。- uint8
将数据类型设置为
uint8
。- double
将数据类型设置为
double
。
编程用法
模块参数:IterationVariableDataType |
类型:字符向量 |
值:'int32' | 'uint32' |'int16' | 'uint16' |'int8' | 'uint8' |'double' |
默认值:'int32' |
版本历史记录
在 R2006a 之前推出现在,您可以在迭代子系统的特定迭代上暂停仿真,方法是将信号断点添加到由以下各项产生的信号中:
While Iterator Subsystem 模块内 While Iterator 模块的迭代序号输出端口
For Iterator Subsystem 模块内 For Iterator 模块的迭代器值输出端口
For Each Subsystem 模块内 For Each 模块的分区索引输出端口
在以前的版本中,您可以在这些位置添加断点,但断点不会暂停仿真,并且在模块图中显示为无效。
相同位置的端口值标签现在显示迭代序号。在以前的版本中,这些位置的端口值标签显示 inaccessible
。
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.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 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)