主要内容

重用MATLAB代码定义MATLAB功能

一个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函数在一个图表

  1. 在对象面板,点击图标的MATLAB函数

  2. 图表画布上,单击位置的MATLAB函数。

  3. 输入函数的签名标签。

    函数的签名标签为函数指定一个名字和正式名称的参数和返回值。一个签名标签有语法:

    [return_val1, return_val2,…]= function_name (__arg1,最长,…)
    您可以指定多个返回值和多个输入参数。每一个返回值和输入参数可以是一个标量,矢量,或矩阵的值。函数只有一个返回值,省略括号的签名标签。

    您可以使用相同的参数和返回值的变量名。例如,一个函数与这个签名标签使用的变量日元y2作为输入和输出:

    (y1、y2、y3) = f (y1, u, y2)
    如果这个函数导出到C代码,日元y2通过引用传递(指针),u通过价值。通过引用传递输入的次数,降低了中间数据生成的代码副本,从而导致更优化的代码。

    请注意

    不要使用图表符号的名称作为参数或返回值函数。例如,如果xy图表数据,定义一个函数的签名y = f (x)结果在一个运行时错误。

  4. 程序的函数,通过双击打开MATLAB功能块编辑器框的函数。

  5. 在MATLAB功能块编辑器,输入MATLAB代码实现的功能。有关更多信息,请参见计划一个MATLAB函数图

  6. 在模型浏览器中,扩大图表对象并选择MATLAB函数。函数的参数和返回值的签名显示为数据项属于你的函数。参数的范围输入。返回值的范围输出

  7. 数据属性对话框中为每个参数和返回值,指定数据的属性,如中描述设置数据属性

  8. 创建需要的任何其他数据项的功能。有关更多信息,请参见通过模型浏览器中添加数据

    你的函数可以访问自己的数据或数据属于父状态或图表。数据项的函数可以有一个的范围:

    • 常数常量数据保留其初始值通过函数调用。

    • 参数——参数数据保留其初始值通过函数调用。

    在MATLAB函数中,您不需要显式地创建本地或临时函数数据。如果你使用一个未定义的变量,Stateflow创建一个临时变量,其余的功能可用。存储值保存在函数调用,使用关键字持续的

调用MATLAB状态和转换功能

您可以调用MATLAB函数操作的任何州或过渡或从其他函数。如果你出口一个MATLAB函数,你可以叫它从任何图表模型中。导出函数的更多信息,请参阅出口Stateflow功能以便重用

调用MATLAB函数,利用函数签名,包括实际的参数值为每一个正式的参数在函数签名。

[return_val1, return_val2,…]= function_name (__arg1,最长,…)

如果实际的和正式的参数的数据类型不同,函数将实际参数形式的类型参数。

指定的属性MATLAB功能

您可以指定一个MATLAB函数的属性在Model Explorer或MATLAB函数属性对话框。

  • 使用模型资源管理器:

    1. 模型浏览器打开,建模选项卡上,选择模型浏览器

    2. 模型层次结构窗格中,选择MATLAB函数。

    3. MATLAB函数窗格中,编辑MATLAB函数属性。

  • 使用MATLAB函数属性对话框:

    1. 在Stateflow编辑器中,右键单击MATLAB函数。

    2. 选择属性

    3. 编辑MATLAB函数属性。

您还可以指定以编程方式使用MATLAB函数属性Stateflow.EMFunction对象。关于Stateflow编程接口的更多信息,请参阅Stateflow API的概述

的名字

函数名。点击函数名的链接,打开你的函数在MATLAB函数块编辑器。

内联函数的选择

控制你的内联函数生成的代码:

  • 汽车——决定内联函数基于一个内部计算。

  • 内联——内联函数如果你不出口到其他图表和它不是一个递归的一部分。(如果你存在递归函数调用本身直接或间接通过另一个函数调用)。

  • 函数——不内联函数。

标签

函数签名标签。函数的函数签名标签指定一个名字和正式名称的参数和返回值。

浸透在整数溢出

生成的代码指定整数溢出是否饱和。有关更多信息,请参见为图表数据处理整数溢出

这个属性只适用于MATLAB函数图表,使用C作为行动的语言。语言,图表中使用MATLAB作为行动的行为数据依赖的价值浸透在整数溢出属性为图表。

MATLAB函数fimath

定义了fimath属性的MATLAB函数。的fimath属性指定与所有相关联fifimath对象构造的MATLAB函数。选择其中一个选项:

  • MATLAB一样——使用相同的函数fimath属性是当前全球fimath。编辑框变暗并显示当前全球fimath以只读的形式。在全球的更多信息fimathfimath对象,请参阅定点设计师™文档。

  • 指定其他——指定您自己的fimath对象的一个方法:

    • 构建fimath对象编辑框内。

    • 构建fimath对象模型在MATLAB或工作区,在编辑框中输入变量的名称。

这个属性只适用于MATLAB函数图表,使用C作为行动的语言。语言,图表中使用MATLAB作为行动的行为数据依赖的价值MATLAB图表fimath属性为图表。

描述

功能描述。您可以输入简短的描述功能的层次结构。

文档链接

链接到在线文档的功能。您可以输入一个web URL地址或MATLAB命令显示在合适的在线文档格式,比如HTML文件或文本在MATLAB命令窗口。当你点击文档链接超链接,Stateflow显示文档。

相关的话题