一个MATLAB®在Stateflow的功能®图表是您用来编写更容易通过调用来实现算法,图形元素内置MATLAB函数。典型的应用包括:
面向矩阵计算
数据分析和可视化
这种类型的功能是用于编码被更容易地通过使用MATLAB代替图形Stateflow的构建体表达的算法是有用的。MATLAB函数也用于产生高效,生产质量的C代码的嵌入式应用提供优化。
一个MATLAB函数可以在一个图表,状态,或subchart的任何地方。的功能的位置决定该组的状态和转换,可调用的函数的。
如果你想只在一个国家或subchart及其子状态调用函数,把你的MATLAB功能在该州或subchart。该功能将覆盖在父母和该国或subchart的祖先同名的其他任何功能。
如果你想调用图中的函数的任何位置,把你的MATLAB功能在图表的水平。
如果你想调用从模型中的任何图的功能,把你的MATLAB功能在图表的水平,使出口的图表级功能。欲了解更多信息,请参阅出口Stateflow的功能的重用。
例如,这个MATLAB函数的名称stdevstats
。它需要一个参数瓦尔斯
并返回一个输出值stdevout
。
要计算值的标准偏差瓦尔斯
,该函数使用此代码。
功能stdevout = stdevstats(瓦尔斯)%#代码生成%计算为丘壑标准偏差LEN =长度(瓦尔斯);stdevout = SQRT(总和(((瓦尔斯-AVG(瓦尔斯,LEN))^ 2))/ LEN);功能平均=平均(数组,大小)平均=总和(数组)/大小;
在对象调色板中,单击MATLAB功能图标。将鼠标指针移到该位置在图表中的新功能的MATLAB。
输入签名标签的功能,如在声明函数参数和返回值。
为了编程功能,打开通过双击的功能框MATLAB编辑器。欲了解更多信息,请参阅程序图表的功能的MATLAB。
在编辑器中,输入您实现功能的MATLAB代码。
在Model Explorer,展开图表对象并选择MATLAB函数。函数签名的参数和返回值显示为属于你的函数的数据项。参数具有范围输入
。返回值具有范围产量
。
在数据属性对话框为每个参数和返回值中,指定的数据属性,如在设置数据属性。
通过创建你的函数所需的任何额外的数据项。欲了解更多信息,请参阅添加数据通过模型浏览器。
你的函数可以访问自己的数据或属于父状态或图表数据。函数中的数据项可以拥有这些范围之一:
本地
- 从一个函数调用到下一个函数调用的本地数据依然存在。有效期只有C图。
不变
- 常量数据通过所有的函数调用保持其初始值。
参数
- 在所有的函数调用的参数数据保留其初始值。
临时
- 临时数据在每个函数调用的开始初始化。有效期只有C图。
您可以从MATLAB工作空间初始化函数数据(比参数和返回值等)。欲了解更多信息,请参阅从MATLAB基地工作区初始化数据。
在图表,使用C作为动作语言,当你想使用只能同时执行的功能有效的数据定义的临时数据。例如,你可以指定一个循环计数器有临时
如果范围计数器值不需要函数完成后继续存在。
在图表,使用MATLAB作为动作语言,你不需要定义临时函数的数据。如果您使用的是未定义的变量,Stateflow中创建一个临时变量。变量是提供给函数的其余部分。
在Stateflow图在Simulink万博1manbetx®模型,您可以在MATLAB函数使用枚举数据和可变大小数据。欲了解更多信息,请参阅代码生成的枚举(万博1manbetxSimulink中)和声明可变大小的输入和输出(万博1manbetxSIMULINK)。
函数签名标签指定您的功能和它的参数和返回值的正式名称的名称。签名标签的语法如下:
[return_val1,return_val2,...] =函数名(ARG1,ARG2,...)
您可以为两个参数和返回值使用相同的变量名。例如,与此签名标签的功能使用变量Y1
和Y2
作为输入和输出:
[Y1,Y2,Y3] = F(Y 1,U,y2)的
Y1
和Y2
通过引用被传递(作为指针),和ü
是按值传递。通过引用传递输入降低所生成的代码的副本的中间数据,从而导致更多的最佳代码的次数。
您可以从任何国家或过渡的行动调用MATLAB功能。您也可以从其他函数中调用MATLAB的功能。如果导出MATLAB功能,可以从模型中的任何图表调用它。
对于到MATLAB函数的调用的语法是一样的函数签名,用实际参数替换在签名中指定的正规的。如果实际和形式参数的数据类型不同,功能蒙上实际参数的形式参数的类型。
如果一个函数签名的形式参数是标量,验证输入和函数调用输出跟踪标量扩张的规则。欲了解更多信息,请参阅值分配到矩阵的所有元素。
你可以通过它的属性对话框,您的MATLAB功能设置一般属性。要打开函数属性对话框中,用鼠标右键单击MATLAB功能框,然后选择属性从上下文菜单中。
功能名称。单击功能名称链接在MATLAB编辑器中打开你的函数。
控制生成的代码中的函数的内联:
汽车
- 决定是否根据内部计算的内联函数。
排队
- 内联你的函数,如果你不将它导出到其它图表,这是不是一个递归的一部分。(如果你的函数直接或间接调用自身通过另一个函数调用存在一个递归。)
功能
- 不内联你的函数。
签名标签您的功能。欲了解更多信息,请参阅声明函数参数和返回值。
指定在生成的代码是否整数溢出饱和。欲了解更多信息,请参阅处理整数溢出的图表数据。
fimath
定义fimath
对于MATLAB功能特性。该fimath
指定的属性与所有相关联的科幻
和fimath
对象构建在MATLAB函数。选择下列选项之一:
同MATLAB- 该功能使用相同的fimath
性能目前全球fimath
。灰色编辑框出现,并显示目前全球fimath
在只读形成。有关全球更多信息fimath
和fimath
对象,见定点设计师™文档。
指定其他- 指定你自己fimath
通过这些方法的一个目的:
构建fimath
编辑框里面对象。
构建fimath
对象在MATLAB或模型工作区,在编辑框中输入的变量名。
功能说明。您可以在层次结构中输入功能的简要说明。
链接的功能的在线文档。您可以输入网页的URL地址或MATLAB命令显示文件在合适的在线形式,如在MATLAB命令窗口的HTML文件或文本。当您单击文档链接超链接,Stateflow的显示文档。