文档

MATLAB功能

包括MATLAB在生成可嵌入C代码的模型中的代码

图书馆

用户定义的功能

描述

MATLAB功能块,你可以写一个matlab®在simulink中使用的功能万博1manbetx®模型。您创建的MATLAB函数为模拟执行并生成代码万博1manbetxSimulink Coder™目标。如果您是Simulink和Matlab产品的万博1manbetx新手,请参见s manbetx 845什么是MATLAB功能块?创建使用MATLAB功能块的模型概述。

双击MATLAB函数块打开其编辑器,在其中您编写MATLAB函数,如以下示例:

要了解有关此编辑器的更多信息,请参阅MATLAB功能块编辑器

您将输入和输出数据指定到MATLAB功能将函数标题中的阻止作为参数和返回值。上述示例函数的参数和返回值对应于该块的输入和输出模型

您还可以使用端口和数据管理器定义数据,输入触发器和功能调用输出,您可以通过选择MATLAB功能块编辑器访问它们编辑数据。看端口和数据经理

MATLAB功能块基于确定每个变量的大小,类和复杂性的分析,生成有效的可嵌入代码。该分析施加以下限制:

除了语言限制外,MATLAB功能块支持MAT万博1manbetxLAB中可用的功能的子集。在万博1manbetx支持C/C ++代码生成的功能和对象 - 字万博1manbetx母顺序列表。这些功能包括共同类别的功能,例如:

支持C/C ++代码生成的功能和对象 - 类万博1manbetx别列表对于功能类别的完整列表。

笔记

尽管该块的代码试图产生与MATLAB完全相同的结果,但由于舍入错误,可能会发生差异。这些数值差异,可能是一些EPS最初,可以在重复操作后放大。依赖行为不建议。不同的C编译器可以为同一计算产生不同的结果。

笔记

在里面MATLAB功能块,%#codegen包括指令以强调该块的MATLAB算法始终用于代码生成。这%#codegen指令或不存在该指令不会改变错误检查行为MATLAB功能堵塞。有关更多信息,请参见汇编指令%#代码根

为了支万博1manbetx持数据可视化,MATLAB功能Block支万博1manbetx持对MATLAB函数的调用仅进行仿真。看外部功能了解此功能的某些局限性,以及它如何与该块的代码分析集成在一起。如果这些函数调用不直接影响任何Simulink输入或输出,则该调用不会出现在万博1manbetx万博1manbetxSimulink编码器生成的代码。

MATLAB功能块,您还可以调用在万博1manbetxSimulink函数堵塞。您可以调用状态流®功能导出图表级功能(使全局)允许通过Simulink调用导出的功能万博1manbetx在“图表属性”对话框中检查。

在端口和数据管理器中,您可以将块输入声明为simulink参数,而不是端口。万博1manbetx这MATLAB功能块还支持输入,输出和参万博1manbetx数的类型和大小的继承。您也可以明确指定这些属性。看类型函数参数,,,,尺寸函数参数, 和添加参数参数对于您使用的变量的描述MATLAB功能块。

不允许递归电话MATLAB功能块。

默认,MATLAB功能块具有直接的进料。为了禁用它,在端口和数据管理器中,清除允许直接进料复选框。非方向的进料使语义能够确保输出仅依赖于当前状态。使用非直接进料,使您可以使用MATLAB功能在反馈循环中阻止并防止代数循环。

数据类型支持万博1manbetx

MATLAB功能Block接受Simulink支持的任何类型的输入,包括定点和枚举类型。万博1manbetx万博1manbetx有关更多信息,请参阅Simulink支持的万博1manbetx数据类型万博1manbetx

MATLAB支持但不支万博1manbetx持Simulink支持的数据类型可能不会在Simulink模型和函数之间传递万博1manbetxMATLAB功能堵塞。这些类型可以在MATLAB功能堵塞。

有关此块的定点支持的更多信息,请参阅万博1manbetx带有MATLAB功能块的固定点数据类型(定点设计师)和MATLAB功能块带有数据类型覆盖(定点设计师)。

参数

请参阅参考页子系统,原子子系统,非虚拟子系统,Codereuse子系统块以获取有关每个块参数的信息。

例子

以下模型显示了如何使用MATLAB功能堵塞:

  • sldemo_radar_eml

  • sldemo_eml_galaxy

特征

数据类型

双|单|布尔|基础整数|定点|枚举|公共汽车

采样时间

采样时间范围

直接进料

是(默认)。要禁用端口和数据管理器中,请清除允许直接进料复选框。

多维信号

是的

可变大小信号

是的

零交叉检测

代码生成

是的

在R2011a中引入

这个话题有帮助吗?