以下常见限制适用于多个工具箱功能,但仅适用于代码生成。要确定哪些限制适用于特定的库函数,请参阅表中的表工具箱功能具有可变大小数据的限制。
对库函数的输入必须是可变长度的向量或固定大小向量。可变长度矢量是具有形状的可变大小阵列1x:n
或者:NX1
(一个尺寸是可变的大小,另一个维度为1)。不允许其他形状,即使它们是运行时的向量。
此限制适用于采用工作维度(沿其运行的维度)的函数。在matlab.®在代码生成中,如果不提供工作维度,则该功能选择它。在MATLAB中,该函数选择大小不等于的第一维度1.对于代码生成,该函数选择具有变量大小的第一维度或具有不等于的固定大小的维度。如果工作维度有变量,则具有固定大小的固定大小大小并且它在运行时变为1,然后工作维度与Matlab中的工作维度不同。因此,启用运行时错误检查时,可能会发生错误。
例如,假设X
是一个具有尺寸的可变尺寸矩阵1x:3x:5
。在生成的代码中,总和(x)
表现得像总和(x,2)
。在matlab,总和(x)
表现得像总和(x,2)
除非尺寸(x,2)
是1.在Matlab,何时尺寸(x,2)
是1,总和(x)
表现得像总和(x,3)
。
为避免此问题,将预期的工作维度明确指定为常量值。例如,总和(x,2)
。
当不是可变长度向量的变量阵列在运行时呈现矢量的形状时,该函数发出错误。为避免此问题,请明确指定输入作为可变长度向量而不是变量大小的数组。
如果可变大小阵列在运行时呈现标量值,则该函数发出错误。要避免此问题,请将scalars指定为固定大小。
下表列表具有用于可变大小数据的代码生成限制的函数。有关这些函数的其他限制,并且对代码生成支持的所有功能和对象的限制,请参阅万博1manbetxC / C ++代码生成支持的函数和对象万博1manbetx。
功能 | 可变大小数据的限制 |
---|---|
全部 |
|
任何 |
|
猫 |
|
conv |
|
COV. |
|
叉 |
|
Deconv. |
|
诽谤 |
|
诊断 |
|
差 |
|
FFT. |
|
筛选 |
|
hist |
|
hisc. |
|
IFFT. |
|
Ind2sub. |
|
interp1. |
|
我是 |
|
订购 |
|
魔法 |
|
最大限度 |
|
Maxk. |
|
意思 |
|
中位数 |
|
闵 |
|
貂 |
|
模式 |
|
m |
考虑乘法 |
nchoosek. |
|
换乘 |
|
平局 |
|
poly |
|
Polyfit. |
|
prod |
|
兰特 |
|
兰迪 |
|
兰德 |
|
重塑 |
|
根 |
|
Shiftdim. |
|
种类 |
|
STD. |
|
次级 |
|
和 |
|
trapz. |
|
typeCast. |
|
var. |
|
vecnorm. |
|