Index Vector
基于第一个输入的值在不同输入之间切换输出

库:
Simulink /
Signal Routing
HDL Coder /
Signal Routing
Index Vector 模块的替代配置:
Multiport Switch
描述
Index Vector 模块是特殊配置的 Multiport Switch 模块,需要指定一个数据输入,控制输入从 0 开始。模块输出是其索引与控制输入匹配的输入向量的元素。例如,如果输入向量为 [18 15 17 10]
,控制输入为 3
,则与索引 3(从 0 开始)匹配的元素为 10,它将成为输出值。
Index Vector 和 Multiport Switch 模块是同一模块的替代配置。
Index Vector - 基于第一个输入的值在不同输入之间切换输出。
Multiport Switch - 基于控制信号选择输出信号。
要将 Multiport Switch 模块配置为 Index Vector 模块,请将数据端口数量设置为 1 且数据端口顺序设置为从 0 开始连续。
示例
端口
输入
控制信号,指定为标量。当控制输入不是整数值时,模块通过向零舍入将值截断为整数。
有关枚举类型的控制信号的信息,请参阅 Multiport Switch 模块参考页上的枚举控制端口的参数设置原则。
限制
如果控制信号为数值,则控制信号不能为复数。
如果控制信号为枚举信号,模块将使用基础整数值来选择数据端口。
如果基础整数没有对应的数据输入,将出现错误。
数据类型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
第一个数据输入,指定为标量或向量。当数据端口顺序设置为从 0 开始连续时,端口标签为 0;当数据端口顺序设置为从 1 开始连续时,端口标签为 1。
数据类型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| bus
| enumerated
| string
输出
模块根据控制信号值从输入数据向量中输出所选值。输出是标量。
数据类型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
参数
常设
指定数据输入端口的排序类型。
从 0 开始连续 - 模块使用从 0 开始的索引方式为连续数据端口排序。这是 Index Vector 模块的默认值。
从 1 开始连续 - 模块使用从 1 开始的索引方式为连续数据端口排序。这是 Multiport Switch 模块的默认值。
指定索引 - 模块使用不连续的索引方式为数据端口排序。只有具有两个或更多输入数据端口的配置才支持此值。
提示
当控制端口为枚举类型时,请选择指定索引。
如果选择从 0 开始连续或从 1 开始连续,请确认控制端口不是枚举类型。此配置已弃用,如果使用将会生成错误。您可以在模型上运行升级顾问,将此配置中的每个 Multiport Switch 模块替换为显式指定数据端口索引的模块。请参阅模型升级。
在仿真或代码生成中,应避免出现模块包含未使用的数据端口的情况。当控制端口为定点或内置数据类型时,请确认所有数据端口索引都可用该类型表示。否则,将发生以下模块行为:
如果模块具有未使用的数据端口且数据端口顺序为: 该模块产生: 从 0 开始连续或从 1 开始连续 警告 指定索引 错误
依赖关系
选择从 0 开始连续或从 1 开始连续将启用数据端口数量参数。
选择指定索引将启用数据端口索引参数。
编程用法
模块参数:DataPortOrder
|
类型:字符向量 |
值:'Zero-based contiguous' | 'One-based contiguous' | 'Specify indices' |
默认值:'Zero-based contiguous' |
指定模块的数据输入端口数。
依赖关系
要启用此参数,请将数据端口顺序设置为从 0 开始连续或从 1 开始连续。
编程用法
模块参数:Inputs
|
类型:字符向量 |
值:1 和 65536 之间的整数 |
默认值:'1' |
信号属性
选中此复选框将要求所有数据输入端口具有相同的数据类型。清除此复选框时,模块允许数据端口输入具有不同数据类型。
编程用法
模块参数:InputSameDT |
类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
软件检查的输出范围的下限值。
软件使用最小值执行下列操作:
某些模块的参数范围检查(请参阅指定模块参数的最小值和最大值)。
定点数据类型的自动定标。
从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
提示
输出最小值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | OutMin |
值: | '[]' (默认) | scalar in quotes |
软件检查的输出范围的上限值。
软件使用最大值执行下列操作:
某些模块的参数范围检查(请参阅指定模块参数的最小值和最大值)。
定点数据类型的自动定标。
从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
提示
输出最大值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | OutMax |
值: | '[]' (默认) | scalar in quotes |
为输出选择数据类型。该类型可以继承、直接指定或表示为数据类型对象,如 Simulink.NumericType
。
当您选择继承的选项时,模块的行为如下所示:
继承: 从内部规则继承 - Simulink® 在考虑嵌入式目标硬件的属性的同时,会选择相应的数据类型来平衡数值准确性、性能和生成的代码大小。如果更改了嵌入式目标的设置,则依内部规则选择的数据类型可能会发生变化。有时软件不能同时满足优化代码效率和保证数值准确性这两个需求。如果内部规则不能满足您对数值准确性或性能的特定需求,请使用下列选项之一:
显式指定输出数据类型。
显式指定默认数据类型(例如
fixdt(1,32,16)
),然后使用定点工具为您的模型提供数据类型建议。有关详细信息,请参阅fxptdlg
(Fixed-Point Designer)。要指定您自己的继承规则,请使用继承: 通过反向传播继承,然后使用 Data Type Propagation 模块。有关如何使用此模块的示例说明,请参阅 Signal Attributes 模块库中的 Data Type Propagation Examples 模块。
继承: 通过反向传播继承 - 使用驱动模块的数据类型。
继承: 与第一个数据输入相同 - 使用第一个数据输入端口的数据类型。
编程用法
模块参数:OutDataTypeStr |
类型:字符向量 |
值:'Inherit: Inherit via internal rule | 'Inherit: Inherit via back propagation' | 'Inherit: Same as first input' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'string' | Simulink.ImageType(480,640,3) | '<data type expression>' |
默认值:'Inherit: Inherit via internal rule' |
选中此选项将锁定此模块的输出数据类型设置,从而防止通过定点工具和定点顾问进行更改。有关详细信息,请参阅Use Lock Output Data Type Setting (Fixed-Point Designer)。
编程用法
模块参数:LockScale |
类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
选择下列舍入模式之一。
- 向上
将正值和负值朝正无穷方向舍入。等同于 MATLAB®
ceil
函数。- 收敛
将数值舍入到最邻近的可表示值。如果出现结值,则舍入到最邻近的偶数整数。等同于 Fixed-Point Designer™
convergent
函数。- 向下
将正值和负值朝负无穷方向舍入。等同于 MATLAB
floor
函数。- 最邻近值
将数值舍入到最邻近的可表示值。如果出现结值,则朝正无穷方向舍入。等同于 Fixed-Point Designer
nearest
函数。- 舍入
将数值舍入到最邻近的可表示值。如果出现结值,则将正数朝正无穷方向舍入,将负数朝负无穷方向舍入。等同于 Fixed-Point Designer
round
函数。- 最简
自动选择是向负无穷大方向舍入还是向零舍入,以生成尽可能有效的舍入代码。
- 零
将数值向零舍入。等同于 MATLAB
fix
函数。
编程用法
模块参数:RndMeth |
类型:字符向量 |
值:'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
默认值:'Floor' |
另请参阅
有关详细信息,请参阅舍入模式 (Fixed-Point Designer)。
指定对溢出是进行饱和处理还是绕回处理。
on
- 将溢出饱和处理为数据类型能够表示的最小值或最大值。off
- 溢出将绕回到数据类型可以表示的合适值。
例如,有符号 8 位整数 int8
可以表示的最大值是 127。任何大于此最大值的模块运算结果都会导致 8 位整数溢出。
选择此参数后,模块输出将在达到 127 时饱和。类似地,模块输出将在达到最小输出值 -128 时饱和。
清除此参数后,软件会将导致溢出的值解释为
int8
,这可能产生意外结果。例如,以int8
表示的模块结果 130(二进制 1000 0010)为 -126。
提示
如果您的模型存在可能的溢出,而您希望在生成的代码中进行显式饱和保护,请考虑选中此参数。
如果您希望优化生成的代码的效率,请考虑清除此参数。清除此参数还可以帮助您避免过度地指定信号超出范围时模块的处理方式。有关详细信息,请参阅信号范围错误故障排除。
如果选中此参数,饱和将应用于模块中的每个内部操作,而不仅仅应用于输出或结果。
一般情况下,代码生成进程可以检测到何时不可能发生溢出。在这种情况下,代码生成器不会生成饱和代码。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | SaturateOnIntegerOverflow |
值: | 'off' (默认) | 'on' |
选中此复选框将允许输入信号具有不同大小。
On
- 允许输入信号具有不同大小,并将输入信号的大小传播给输出信号。在此模式下,模块产生可变大小的输出信号。Off
- 要求所有非标量数据输入信号的大小相同。
编程用法
参数:AllowDiffInputSizes
|
类型:字符向量 |
值:'on' | 'off'
|
默认值:'off'
|
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
替代配置
Multiport Switch 模块用于确定将多个模块输入中的哪一个传递给输出。此模块根据第一个输入的值来确定选择哪个输入。第一个输入是控制输入,其余输入是数据输入。控制输入的值确定将哪个数据输入传递给输出。
库:
Simulink /
Signal Routing
HDL Coder /
Signal Routing
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
HDL Coder™ 提供影响 HDL 实现和综合逻辑的额外配置选项。
Index Vector 模块是一个 Multiport Switch 模块,其数据端口数量设置为 1。有关 HDL 代码生成的信息,请参阅 Multiport Switch。
PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。
定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。
版本历史记录
在 R2006a 之前推出
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)