以下常见限制适用于多个工具箱函数,但仅用于代码生成。要确定哪些限制适用于特定的库函数,请参见具有可变大小数据限制的工具箱函数.
对库函数的输入必须是可变长度的向量或固定大小向量。可变长度矢量是具有形状的可变大小阵列1x:n
或:资料片
(一个尺寸是可变的大小,另一个维度为1)。不允许其他形状,即使它们是运行时的向量。
这个限制适用于以工作维度(操作的维度)作为输入的函数。在MATLAB®在代码生成中,如果不提供工作维度,函数将选择它。在MATLAB中,函数选择尺寸不等于1的第一个维度。对于代码生成,函数选择具有可变大小或不等于1的固定大小的第一个维度。如果工作尺寸是可变的,在运行时变为1,则工作尺寸与MATLAB中的工作尺寸不同。因此,当启用运行时错误检查时,可能会发生错误。
例如,假设X
是一个具有尺寸的可变尺寸矩阵1 x: 3 x: 5
.在生成的代码中,总和(x)
表现得像总和(X, 2)
.在matlab,总和(x)
表现得像总和(X, 2)
除非尺寸(x,2)
是1。在MATLAB中,当尺寸(x,2)
是1,总和(x)
表现得像总和(X, 3)
.
为避免此问题,将预期的工作维度明确指定为常量值。例如,总和(X, 2)
.
当不是可变长度向量的变量阵列在运行时呈现矢量的形状时,该函数发出错误。为避免此问题,请明确指定输入作为可变长度向量而不是变量大小的数组。
如果可变大小阵列在运行时呈现标量值,则该函数发出错误。要避免此问题,请将scalars指定为固定大小。
下表列表具有用于可变大小数据的代码生成限制的函数。有关这些函数的其他限制,并且对代码生成支持的所有功能和对象的限制,请参阅金宝appC / C ++代码生成的函数和对象 - 字金宝app母列表.
函数 | 可变大小数据的限制 |
---|---|
所有 |
|
任何 |
|
BSXFUN. |
|
猫 |
|
conv |
|
浸 |
|
交叉 |
|
deconv |
|
去趋势 |
|
诊断接头 |
|
差 |
|
fft |
|
过滤器 |
|
hist |
|
hisc. |
|
IFFT. |
|
Ind2sub. |
|
interp1 |
|
我是 |
|
issorted |
|
魔法 |
|
马克斯 |
|
的意思是 |
|
中位数 |
|
闵 |
|
模式 |
|
m |
考虑乘法 |
nchoosek. |
|
交换 |
|
平局 |
|
聚 |
|
Polyfit. |
|
刺激 |
|
兰特 |
|
兰迪 |
|
兰德 |
|
重塑 |
|
根 |
|
Shiftdim. |
|
STD. |
|
次级 |
|
和 |
|
trapz. |
|
typeCast. |
|
var |
|