Index Vector
基于第一个输入的值在不同输入之间切换输出
库:
Simulink /
Signal Routing
HDL Coder /
Signal Routing
描述
Index Vector 模块是特殊配置的 Multiport Switch 模块,需要指定一个数据输入,控制输入从 0 开始。模块输出是其索引与控制输入匹配的输入向量的元素。例如,如果输入向量为 [18 15 17 10]
,控制输入为 3
,则与索引 3(从 0 开始)匹配的元素为 10,它将成为输出值。
要将 Multiport Switch 模块配置为 Index Vector 模块,请将数据端口数量设置为 1 且数据端口顺序设置为从 0 开始连续。
有关 Multiport Switch 模块的详细信息,请参阅 Multiport Switch 模块参考页。
示例
端口
输入
Port_1 — 控制信号
标量
控制信号,指定为标量。当控制输入不是整数值时,模块通过向零舍入将值截断为整数。
有关枚举类型的控制信号的信息,请参阅 Multiport Switch 模块参考页上的枚举控制端口的参数设置原则。
限制
如果控制信号为数值,则控制信号不能为复数。
如果控制信号为枚举信号,模块将使用基础整数值来选择数据端口。
如果基础整数没有对应的数据输入,将出现错误。
数据类型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
0 or 1 — 第一个数据输入
标量 | 向量
第一个数据输入,指定为标量或向量。当数据端口顺序设置为从 0 开始连续时,端口标签为 0;当数据端口顺序设置为从 1 开始连续时,端口标签为 1。
数据类型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| bus
| enumerated
| string
输出
Port_1 — 所选数据输入,基于控制信号值
标量
模块根据控制信号值从输入数据向量中输出所选值。输出是标量。
数据类型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
参数
常设
数据端口顺序 — 数据输入端口的排序类型
从 0 开始连续 (默认) | 从 1 开始连续 | 指定索引
指定数据输入端口的排序类型。
从 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' |
数据端口数量 — 数据输入端口的个数
1
(默认) | 在 1 和 65536 之间的整数
指定模块的数据输入端口数。
依存关系
要启用此参数,请将数据端口顺序设置为从 0 开始连续或从 1 开始连续。
编程用法
模块参数:Inputs
|
类型:字符向量 |
值:1 和 65536 之间的整数 |
默认值:'1' |
信号属性
要求所有数据端口输入具有相同的数据类型 — 要求所有输入具有相同的数据类型
off
(默认) | on
选中此复选框将要求所有数据输入端口具有相同的数据类型。清除此复选框时,模块允许数据端口输入具有不同数据类型。
编程用法
模块参数:InputSameDT |
类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
输出最小值 — 范围检查的最小输出值
[]
(默认) | 标量
Simulink® 检查的输出范围的下限值。
Simulink 使用最小值执行下列操作:
某些模块的参数范围检查(请参阅指定模块参数的最小值和最大值)。
定点数据类型的自动定标。
从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
注意
输出最小值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。
编程用法
模块参数:OutMin |
类型:字符向量 |
值:'[ ]' | 标量 |
默认值:'[ ]' |
输出最大值 — 范围检查的最大输出值
[]
(默认) | 标量
Simulink 检查的输出范围的上限值。
Simulink 使用最大值执行下列操作:
某些模块的参数范围检查(请参阅指定模块参数的最小值和最大值)。
定点数据类型的自动定标。
从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
注意
输出最大值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。
编程用法
模块参数:OutMax |
类型:字符向量 |
值:'[ ]' | 标量 |
默认值:'[ ]' |
输出数据类型 — 指定输出数据类型
继承: 从内部规则继承 (默认) | 继承: 通过反向传播继承 | 继承: 与第一个数据输入相同 | double | single | half | int8 | uint8 | int16 | uint16 | int32 | uint32 | int64 | uint64 | fixdt(1,16) | fixdt(1,16,0) | fixdt(1,16,2^0,0) | 字符串 | Simulink.ImageType(480,640,3) | <数据类型表达式>
为输出选择数据类型。该类型可以继承、直接指定或表示为数据类型对象,如 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' |
锁定输出数据类型设置以防止被定点工具更改 — 防止定点工具覆盖数据类型
off
(默认) | on
选中此选项将锁定此模块的输出数据类型设置,从而防止通过定点工具和定点顾问进行更改。有关详细信息,请参阅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)。
对整数溢出进行饱和处理 — 溢出操作的方法
off
(默认) | on
指定对溢出是进行饱和处理还是绕回处理。
off
- 溢出将绕回到数据类型可以表示的合适值。例如,数字 130 不适合一个有符号的 8 位整数,因此绕回 -126。
on
- 将溢出饱和处理为数据类型能够表示的最小值或最大值。例如,一个有符号的 8 位整数的溢出可以饱和处理为 -128 或 127。
提示
如果您的模型存在可能的溢出,而您希望在生成的代码中进行显式饱和保护,请考虑选中此复选框。
如果您希望优化生成的代码的效率,请考虑清除此复选框。
清除此复选框还可以帮助您避免过度地指定信号超出范围时的处理方式。有关详细信息,请参阅信号范围错误故障排除。
如果选中此复选框,饱和将应用于模块中的每个内部操作,而不仅仅应用于输出或结果。
一般情况下,代码生成进程可以检测到何时不可能发生溢出。在这种情况下,代码生成器不会生成饱和代码。
编程用法
模块参数:SaturateOnIntegerOverflow |
类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
允许不同数据输入大小(产生可变大小的输出信号) — 允许不同大小的输入信号
off
(默认) | on
选中此复选框将允许输入信号具有不同大小。
On
- 允许输入信号具有不同大小,并将输入信号的大小传播给输出信号。在此模式下,模块产生可变大小的输出信号。Off
- 要求所有非标量数据输入信号的大小相同。
编程用法
参数:AllowDiffInputSizes |
类型:字符向量 |
值:'on' | 'off' |
默认值:'off' |
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。
HDL Coder™ 提供影响 HDL 实现和综合逻辑的额外配置选项。
Index Vector 模块是一个 Multiport Switch 模块,其数据端口数量设置为 1。有关 HDL 代码生成的信息,请参阅 Multiport Switch。
PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。
定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)