您可以生成C / C ++在MATLAB代码®从您的系统,通过使用包含系统对象MATLAB编码器™。您可以为桌面部署和嵌入式系统的高效,紧凑的代码,加快定点算法。
下面的使用规则和限制适用于从MATLAB生成的代码使用的系统对象。
对象构造和初始化
如果对象存储在持久性变量,初始化系统通过在嵌入对象句柄对象一次如果
通过调用语句是空的()
。
设置参数系统对象™构造的编译时间常数。
初始化所有的系统对象性质releaseImpl
年底前用途setupImpl
。
你不能初始化系统对象与其他MATLAB类对象的代码生成默认值的属性。你必须初始化在构造这些属性。
输入和输出
系统对象接受最多1024个输入。最多支持每输入8个维度。万博1manbetx
的输入的数据类型不应该改变。
该的输入的复杂性不应该改变。
如果你想投入来改变大小,验证可变大小的支持已启用。万博1manbetx为可变大小数据的代码生成支持也要万博1manbetx求可变大小的支持已启用。默认情况下在MATLAB,可变大小数据的支持万博1manbetx已启用。
系统对象预定义的软件不支持可变大小,如果他们的数据超过万博1manbetxDynamicMemoryAllocationThreshold
值。
不要设置系统对象从成为输出MATLAB功能块。
不要使用保存和恢复仿真状态作为在任何系统对象选项SIMSTATEMATLAB功能块。
作为一个例子的输入参数传递给函数与被编译没有传递系统对象代码生成
。
不要使用经过一个系统对象声明为外在的(函数调用在解释模式)功能coder.extrinsic
功能。系统对象从外在函数返回和范围的系统对象,可自动成为外在可以用作输入到另一个非本征函数。但是,这些功能不生成代码。
属性
在MATLAB系统块,不能为系统对象的离散状态属性中使用大小可变的。私有属性可以是大小可变的。
对象不能被用作属性的默认值。
只能分配值nontunable性质一次,包括在构造函数中分配。
Nontunable属性值必须是恒定的。
对于固定点的输入,如果可调谐特性具有依赖数据类型属性,则只能在构造时或对象被锁定后设置的可调特性。
对于getNumInputsImpl
和getNumOutputsImpl
方法,如果您设置一个对象返还财产的说法,该对象属性必须有Nontunable
属性。
全局变量
全局变量被允许在一个系统对象,除非您使用的系统对象在Simulink万博1manbetx®通过MATLAB系统块。看到生成代码全局数据。
方法
代码生成支持仅限于这些系统对象的万博1manbetx方法可供选择:
得到
已经完成了
(仅用于源)
组
(对于调谐性能)
对于系统对象定义,代码生成的支持仅限于这些方法可供选择:万博1manbetx
您可以在您包括任何其它元素以同样的方式在MATLAB代码系统对象。然后,您可以通过编辑来自您的MATLAB代码MEX文件代码生成
命令,如果你有一个是可用MATLAB编码器执照。此编译过程,它涉及一些优化,是用于加速模拟中有用。看到开始使用MATLAB编码器和MATLAB类了解更多信息。
大多数,但不是所有的系统对象支持代码生成。万博1manbetx请参阅特定对象的引用页信息。
使用MATLAB功能块,您可以包括任何系统对象和Simulink模型的任何MATLAB语言功能。万博1manbetx这个模型可以生成嵌入代码。系统对象的代码生成比大多数相关模块提供更高级别的算法。欲了解更多信息,请参阅实现MATLAB功能使用块(万博1manbetxSIMULINK)。
使用MATLAB系统块,您可以在Simulink模型各个系统对象,你有一个类万博1manbetx定义文件创建。然后,该模型可以生成嵌入代码。欲了解更多信息,请参阅MATLAB系统模块(万博1manbetxSIMULINK)。
MATLAB编译器™软件支持系统对象的万博1manbetx内部功能的MATLAB使用。编译器产品不支持的系统对象在MATLAB脚本中使用。万博1manbetx