主要内容

直接查表(n-D)

索引到n维表以检索元素、向量或2维矩阵

  • 库:
  • 金宝appSimulink /查找表

    HDL编码器/查找表

  • 直接查找表(n-D)块

描述

直接查找表(n-D)块索引到n维表以检索元素、向量或2-D矩阵。第一个选择索引对应于顶部(或左侧)输入端口。您可以选择提供表数据作为块的输入,或者在块对话框中定义表数据。输入端口的数量和输出的大小取决于表维度的数量和所选择的输出片。

如果从2-D表中选择一个向量,输出向量可以是一列或一行,这取决于模型配置参数设置数学和数据类型>使用针对行主数组布局优化的算法.块输入是从零开始的索引(有关更多信息,请参阅输入从表中选择此对象参数。

直接查找表Block支金宝app持符号维。

块输入和输出

直接查找表(n-D)块使用输入作为基于零的索引n维表。输入的数量随输出的形状而变化:一个元素、向量或2-D矩阵。

将一组输出值定义为表数据参数。对于默认的列主算法行为,第一个输入指定表维的从零开始的索引,该索引比输出维高1。下一个输入指定到下一个表维度的从零开始的索引,依此类推。

输出的形状 输出维度 映射到第一个输入的表维
元素 0 1
向量 1 2
矩阵 2 3.

假设您想要从一个4-D表中选择一个值的向量。

块输入端口到表维度的以下映射适用。

这个输入端口… 这个表维度的索引…
1 2
2 3.
3. 4

块图标外观的变化

根据所设置的参数,块图标会改变外观。对于维度大于4的表,图标与4- d版本匹配,但在顶部显示准确的维度数。

当你使用表数据参数时,您可以看到这些默认列主行为的图标。说明在选择配置参数时,部分图标不一致数学和数据类型>使用针对行主数组布局优化的算法

输入从表中选择的对象 表维数
1 2 3. 4

元素

向量

二维矩阵

不适用

当您使用表输入端口时,您会看到这些图标。

输入从表中选择的对象 表维数
1 2 3. 4

元素

向量

二维矩阵

不适用

港口

输入

全部展开

对于默认的列主算法,第一个输入端口,指定到比输出维数(0、1或2)高1的表维的从零开始的索引。下一个输入指定到下一个表维的从零开始的索引,依此类推。所有的索引输入必须是实值。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|枚举

对于默认的列主算法,第N个输入端口,指定表维的从零开始的索引,该索引比输出维(0、1或2)高N个。输入的数量随输出的形状而变化。所有的索引输入必须是实值。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|枚举

表数据,指定为向量、矩阵或N-D数组。表的尺寸必须与维数参数。块的输出数据类型与表的数据类型相同。

依赖关系

要启用此端口,请选择将表作为输入复选框。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|枚举

输出

全部展开

输出切片,以标量、向量或2-D矩阵的形式提供。控件的设置确定块输出的大小输入从表中选择此对象参数。输出数据类型与表数据类型相同。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|枚举

参数

全部展开

主要

表格

维数表数据参数必须为。这个值决定了表的自变量数量和块的输入数量。

指定… 这样做……

1 2 3 4

在下拉列表中选择。

更多的表维数

直接在字段中输入正整数。

这个块支持的表维度的最大数量是30。金宝app

编程使用

块参数:NumberOfTableDimensions
类型:特征向量
价值观:'1' | '2' | '3' | '4' |…| |“30”
默认值:' 2 '

选中此复选框可将表数据作为块输入提供给直接查找表(n-D)块。当您选择此复选框时,一个新的输入端口,T,出现了。使用此端口输入表数据。

编程使用

块参数:TableIsInput
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

指定输出值表。表的尺寸必须与表维数参数。

提示

程序框图编辑过程中,可以将表数据字段是空的。但是对于模拟,您必须匹配中的维数表数据表维数.详细说明如何构造多维MATLAB®数组,看到多维数组

点击编辑打开“查找表编辑器”。有关更多信息,请参见编辑查找表

依赖关系

要启用表数据字段,清除将表作为输入复选框。

编程使用

块参数:表格
类型:特征向量
价值观:标量、向量、矩阵或N-D数组
默认值:“[4 5 6;16 19 20;10 18 23]”
算法

指定输出数据是单个元素、向量还是2-D矩阵。用于索引的输入端口的数量取决于您的选择。

选择 用于索引的输入端口数量
元素 表维数
向量 表维数-1
二维矩阵 表维数-2

这个编号匹配MATLAB索引。例如,如果您有一个4-D数据表,请遵循以下指导原则。

访问…… 指定… 就像在……
一个元素 四个指标 阵列(1、2、3、4)
一个向量 三个指标 阵列(:,2、3、4)(默认列-主算法)
一个二维矩阵 两个指标 阵列(::3、4)(默认列-主算法)

提示

数学和数据类型>使用针对行主数组布局优化的算法配置参数设置后,“直接查找表”块行为从“列-主要”变为“行-主要”。对于这个块,列主和行主算法在输出计算中可能在语义上不同,从而导致不同的数值。例如,假设输入从表中选择此对象参数设置为向量.所选向量的元素在表存储内存中是连续的。这个表显示了根据表维度的列主和行主算法:

表的维度 列为主的算法 行算法
二维表 选择列向量 行向量被选中
三维及以上工作台 从表的第一个维度中选择输出向量 输出向量从表的最后一个维度中选择

考虑使用来自3-D表的矢量输出的行主和列主直接查找算法。最后一个维度是三维表的第三个维度。由于语义的变化,列主和行主直接查找可能会输出不同的向量大小和数值。

这个图显示了直接查表(n-D)配置有三维表和矢量输出的块。默认情况下,块图标显示列主算法。

要让相同的块使用行主算法,请更改数学和数据类型>使用为行主布局优化的算法配置模型参数并重新编译。块图标的变化反映了针对行为主行为优化的算法的变化。

有关行主码支持的详细信息,请参见金宝app行-主数组布局:简化与查找表和其他块的外部C/ c++代码的集成(金宝app仿真软件编码器)

编程使用

块参数:InputsSelectThisObjectFromTable
类型:特征向量
价值观:“元素”|“向量”|“二维矩阵”
默认值:“元素”

指定当索引超出表维范围时是否显示警告或错误。选项包括:

  • 没有一个-没有回应。

  • 警告-显示警告并继续模拟。

  • 错误-终止模拟并显示错误。

当你选择没有一个警告,块夹住超出范围的索引以适应表的尺寸。例如,如果指定的索引为5.3,并且该表维度的最大索引为4,则块将索引固定为4。

编程使用

块参数:DiagnosticForOutOfRangeInput
类型:特征向量
价值观:' | '警告' | '错误'
默认值:“警告”

指定采样时间为-1以外的值。有关更多信息,请参见指定采样时间

依赖关系

此参数不可见,除非显式地设置为其他值-1.要了解更多信息,请参见不建议采样时间的块

编程使用

块参数:SampleTime
类型:特征向量
价值观:标量或向量
默认值:' 1 '

代码生成

指定是否包含检查超出范围输入值的代码。

复选框 结果 何时使用

生成的代码不包括检查超出范围的断点输入的条件语句。

当输入超出范围时,可能会导致生成的代码出现未定义的行为。

为了提高代码效率

生成的代码包括条件语句,用于检查超出范围的输入。

安全关键应用

如果您的输入没有超出范围,您可以选择在生成的代码中删除对超出范围索引的保护复选框表示代码效率。默认情况下,该复选框被清除。对于安全性较高的应用,请不要选中此复选框。如果要选择在生成的代码中删除对超出范围索引的保护复选框,首先检查您的模型输入是否在范围内。例如:

  1. 清除在生成的代码中删除对超出范围索引的保护复选框。

  2. 设置诊断超出范围的输入参数错误

  3. 在正常模式下模拟模型。

  4. 如果有超出范围的错误,将它们修复到范围内并再次运行模拟。

  5. 当模拟不再产生超出范围的输入错误时,选择在生成的代码中删除对超出范围索引的保护复选框。

    请注意

    当你选择在生成的代码中删除对超出范围索引的保护复选框,且输入超出范围,则生成的代码的行为未定义。

根据您的应用程序,您可以运行以下Model Advisor检查来验证此复选框的使用:

  • 通过产品>嵌入式编码器>识别生成昂贵的范围外检查代码的查找表块

  • 通过产品>金宝app仿真软件检查>建模标准>- 331 - 178 - c /做检查吗>检查查找表块的使用情况

有关Model Advisor的更多信息,请参见运行Model Advisor检查

此外,要确定选择此复选框是否安全,如果您有金宝app®设计验证器™许可证,考虑使用检测块输入范围违反(金宝appSimulink Design Verifier)检查。

编程使用

块参数:RemoveProtectionInput
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

表属性

请注意

中的参数表属性窗格不可用将表作为输入.在这种情况下,块从带有标签的输入端口继承所有表属性T

为表数据指定最小值。默认值为[](不明)。

编程使用

块参数:TableMin
类型:特征向量
价值观:标量
默认值:“[]”

为表数据指定最大值。默认值为[](不明)。

编程使用

块参数:TableMax
类型:特征向量
价值观:标量
默认值:“[]”

指定表数据类型。你可以设置为:

  • 继承数据类型的规则,例如,继承:从“表数据”继承

  • 内置数据类型的名称,例如,

  • 数据类型类的名称,例如,枚举数据类型类

  • 求值为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

编程使用

块参数:TableDataTypeStr
类型:特征向量
价值观:'继承:继承'表数据'|' double' |' single' |' half' |' int8' |' uint8' |' int16' |' uint16' |' int32' |' uint32' |' int64' |' uint64' |' boolean' |' fixdt(1,16)' |' fixdt(1,16,0)' |' fixdt(1,16,2^0,0)'|'Enum: <类名>'|'<数据类型表达式>'
默认值:“继承:从表数据继承”

选择此参数可防止定点工具覆盖在此块上指定的数据类型。有关更多信息,请参见锁定输出数据类型设置(定点设计师)

编程使用

块参数:LockScale
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

块特征

数据类型

布尔||枚举|不动点一个|一半|整数|

直接引线

是的

多维信号

是的

适应信号

没有

讨论二阶导数过零检测

没有

一个此块仅支持'Table金宝app'数据的定点数据类型。

扩展功能

C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app

R2006a之前介绍