一个MATLAB®函数在一个Stateflow®图是一个图形元素用来写算法容易实现通过调用内置的MATLAB函数。典型的应用包括:
Matrix-oriented计算
数据分析和可视化
这种类型的函数是用于编码算法更容易表达了通过使用MATLAB的图形Stateflow结构。MATLAB函数生成效率,也提供了优化生产的C代码为嵌入式应用程序。
MATLAB函数可以驻留在一个图表,状态,或子图表。函数的位置确定的状态和转换集可以调用该函数。
如果你想调用的函数在一个州或子图表及其亚态,将你的MATLAB函数的状态或子图表。这个函数将覆盖其他函数同名的父母和祖先的状态或子图表。
如果你想在任何地方调用这个函数在一个图表,将你的MATLAB函数在表级别。
如果你想从任何图表模型中调用这个函数,将你的MATLAB函数绘图水位图水平,使出口的功能。有关更多信息,请参见出口Stateflow功能以便重用。
请注意
MATLAB函数可以访问图和状态数据上面Stateflow层次结构。
例如,MATLAB函数的名称stdevstats
。它接受一个参数瓦尔斯
并返回一个输出值stdevout
。
计算的值的标准偏差瓦尔斯
,该函数使用这些代码。
函数stdevout = stdevstats (val)% # codegen%计算标准差valslen =长度(val);stdevout =√总和(vals-avg (vals, len)) ^ 2)) / len);函数意味着= avg(数组、大小)意味着=(数组)/大小总和;
在对象面板,点击图标的MATLAB函数。
图表画布上,单击位置的MATLAB函数。
输入函数的签名标签。
函数的签名标签为函数指定一个名字和正式名称的参数和返回值。一个签名标签有语法:
[return_val1, return_val2,…]= function_name (__arg1,最长,…)
您可以使用相同的参数和返回值的变量名。例如,一个函数与这个签名标签使用的变量日元
和y2
作为输入和输出:
(y1、y2、y3) = f (y1, u, y2)
日元
和y2
通过引用传递(指针),u
通过价值。通过引用传递输入的次数,降低了中间数据生成的代码副本,从而导致更优化的代码。
请注意
不要使用图表符号的名称作为参数或返回值函数。例如,如果x
或y
图表数据,定义一个函数的签名y = f (x)
结果在一个运行时错误。
程序的函数,通过双击打开MATLAB功能块编辑器框的函数。
在MATLAB功能块编辑器,输入MATLAB代码实现的功能。有关更多信息,请参见计划一个MATLAB函数图。
在模型浏览器中,扩大图表对象并选择MATLAB函数。函数的参数和返回值的签名显示为数据项属于你的函数。参数的范围输入
。返回值的范围输出
。
数据属性对话框中为每个参数和返回值,指定数据的属性,如中描述设置数据属性。
创建需要的任何其他数据项的功能。有关更多信息,请参见通过模型浏览器中添加数据。
你的函数可以访问自己的数据或数据属于父状态或图表。数据项的函数可以有一个的范围:
常数
常量数据保留其初始值通过函数调用。
参数
——参数数据保留其初始值通过函数调用。
在MATLAB函数中,您不需要显式地创建本地或临时函数数据。如果你使用一个未定义的变量,Stateflow创建一个临时变量,其余的功能可用。存储值保存在函数调用,使用关键字持续的
。
您可以调用MATLAB函数操作的任何州或过渡或从其他函数。如果你出口一个MATLAB函数,你可以叫它从任何图表模型中。导出函数的更多信息,请参阅出口Stateflow功能以便重用。
调用MATLAB函数,利用函数签名,包括实际的参数值为每一个正式的参数在函数签名。
[return_val1, return_val2,…]= function_name (__arg1,最长,…)
如果实际的和正式的参数的数据类型不同,函数将实际参数形式的类型参数。
您可以指定一个MATLAB函数的属性在Model Explorer或MATLAB函数属性对话框。
使用模型资源管理器:
模型浏览器打开,建模选项卡上,选择模型浏览器。
在模型层次结构窗格中,选择MATLAB函数。
在MATLAB函数窗格中,编辑MATLAB函数属性。
使用MATLAB函数属性对话框:
在Stateflow编辑器中,右键单击MATLAB函数。
选择属性。
编辑MATLAB函数属性。
您还可以指定以编程方式使用MATLAB函数属性Stateflow.EMFunction
对象。关于Stateflow编程接口的更多信息,请参阅Stateflow API的概述。
函数名。点击函数名的链接,打开你的函数在MATLAB函数块编辑器。
控制你的内联函数生成的代码:
汽车
——决定内联函数基于一个内部计算。
内联
——内联函数如果你不出口到其他图表和它不是一个递归的一部分。(如果你存在递归函数调用本身直接或间接通过另一个函数调用)。
函数
——不内联函数。
函数签名标签。函数的函数签名标签指定一个名字和正式名称的参数和返回值。
生成的代码指定整数溢出是否饱和。有关更多信息,请参见为图表数据处理整数溢出。
这个属性只适用于MATLAB函数图表,使用C作为行动的语言。语言,图表中使用MATLAB作为行动的行为数据依赖的价值浸透在整数溢出属性为图表。
fimath
定义了fimath
属性的MATLAB函数。的fimath
属性指定与所有相关联fi
和fimath
对象构造的MATLAB函数。选择其中一个选项:
MATLAB一样——使用相同的函数fimath
属性是当前全球fimath
。编辑框变暗并显示当前全球fimath
以只读的形式。在全球的更多信息fimath
和fimath
对象,请参阅定点设计师™文档。
指定其他——指定您自己的fimath
对象的一个方法:
构建fimath
对象编辑框内。
构建fimath
对象模型在MATLAB或工作区,在编辑框中输入变量的名称。
这个属性只适用于MATLAB函数图表,使用C作为行动的语言。语言,图表中使用MATLAB作为行动的行为数据依赖的价值MATLAB图表fimath属性为图表。
功能描述。您可以输入简短的描述功能的层次结构。
链接到在线文档的功能。您可以输入一个web URL地址或MATLAB命令显示在合适的在线文档格式,比如HTML文件或文本在MATLAB命令窗口。当你点击文档链接超链接,Stateflow显示文档。