以下约束适用于与查找表块相关的断点数据集和表数据的大小:
系统的内存限制限制了查找表的总体大小。
查询表必须使用一致的维,以便表数据的总体大小反映每个断点数据集的大小。
为了说明第二个约束,考虑在图中创建关系的输入和输出值的以下向量。
输入值向量:[-3 -2 -1 0 1 2 3]输出值向量:[-3 -1 0 -1 0 1 3]
在本例中,输入和输出数据大小相同(1乘7),这使得数据在一维查找表中的维数一致。
下面的输入和输出值定义了图形化显示的2d查找表。
行索引输入值:[1 2 3]列索引输入值:[1 2 3 4]表数据:[11 12 13 14;21 22 23 24;31 32 33 34]
在本例中,表示行索引和列索引的向量的大小分别为1×3和1×4。因此,为了维数一致,输出表的大小必须是3×4。
表查找操作的第一阶段涉及到将输入与断点数据集关联起来。搜索算法要求输入断点集为严格单调递增,也就是说,每个后续的元素都大于前一个元素。例如,向量
A = [0 0.5 1 1.9 2.1 3]
是一个有效的断点数据集,因为每个元素都大于它的前身。
虽然断点数据集是严格单调的双
格式,在转换为定点数据类型之后,可能就不是这样了。
您可以使用这些方法之一来表示数据集中均匀间隔的断点。
配方 | 例子 | 什么时候使用这个配方 |
---|---|---|
[first_value:间距last_value): |
(10:10:200) |
查询表可以不使用双 或单 。 |
[0:(last_value-first_value)/spacing] |
1 + (0.02 * [0:450]) |
查找表使用双 或单 。 |
因为浮点数据类型不能精确地表示某些数字,所以第二种公式更适合双
和单
。例如,使用1 + (0.02 * [0:450])
而不是(1:0.02:10)
。有关支持均匀间隔断点的查找表块的列表,请参见万博1manbetx查询表块特性的摘要。
除其他优点外,均匀间隔的断点可以使生成的代码无分区并减少内存使用。有关更多信息,请参阅:
fixpt_evenspace_cleanup
在仿真软件万博1manbetx®文档
间距对速度、错误和内存使用的影响(定点设计师)
识别有问题的定点操作(嵌入式编码)
不用MATLAB吗®linspace
函数定义均匀间隔的断点。万博1manbetxSimulink使用更严格的公差来检查断点设置是否具有均匀的间距。如果你使用linspace
要为查找表定义断点,Simulink认为断点的间隔不均匀。万博1manbetx