主要内容

重用MATLAB代码定义MATLAB功能

一个MATLAB®函数在一个Stateflow®图是一个图形元素用来写算法容易实现通过调用内置的MATLAB函数。典型的应用包括:

  • Matrix-oriented计算

  • 数据分析和可视化

这种类型的函数是用于编码算法更容易表达了通过使用MATLAB的图形Stateflow结构。MATLAB函数生成效率,也提供了优化生产的C代码为嵌入式应用程序。

MATLAB函数可以驻留在一个图表,状态,或子图表。函数的位置确定的状态和转换集可以调用该函数。

  • 如果你想调用的函数在一个州或子图表及其亚态,将你的MATLAB函数的状态或子图表。这个函数将覆盖其他函数同名的父母和祖先的状态或子图表。

  • 如果你想在任何地方调用这个函数在一个图表,将你的MATLAB函数在表级别。

  • 如果你想从任何图表模型中调用这个函数,将你的MATLAB函数绘图水位图水平,使出口的功能。有关更多信息,请参见出口Stateflow功能以便重用

请注意

MATLAB函数可以访问图和状态数据上面Stateflow层次结构。

例如,MATLAB函数的名称stdevstats。它接受一个参数瓦尔斯并返回一个输出值stdevout

Stateflow图表与MATLAB函数称为stdevstats。

计算的值的标准偏差瓦尔斯,该函数使用这些代码。

函数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作为就地参数以引用的方式传递。使用就地数据的次数,降低了中间数据生成的代码副本,从而更高效的代码。

    符号面板和Model Explorer,函数的参数和返回值的签名显示为数据项属于你的函数。参数的范围输入。返回值的范围输出

  4. 指定数据属性为每个参数和返回值,所述设置数据属性。当一个参数和一个返回值具有相同的名称,您可以编辑属性的参数。返回值的属性是只读的。

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

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

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

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

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

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

    在MATLAB函数中,您不需要显式地创建本地或临时函数数据。相反,您可以使用未定义的变量来存储值只能在其他函数调用。存储值保存在函数调用,使用本地数据在表级别或使用关键字持续的

调用MATLAB状态和转换功能

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

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

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

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

指定的属性MATLAB功能

下面列出的属性指定一个MATLAB函数与其他组件的交互Stateflow图表。您可以修改这些属性属性检查器、Model Explorer或MATLAB函数属性对话框。

使用属性检查器:

  1. 建模选项卡,在设计数据中,选择属性检查器

  2. 在Stateflow编辑器中,选择MATLAB函数。

  3. 属性检查器、编辑的过渡性质。

使用模型资源管理器:

  1. 建模选项卡,在设计数据中,选择模型浏览器

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

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

使用MATLAB函数属性对话框:

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

  2. 选择属性

  3. 在properties对话框中,编辑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属性为图表。

这个属性是不可用的属性检查器

描述

MATLAB函数的描述。

文档链接

链接到在线文档的MATLAB函数。您可以输入一个web URL地址或MATLAB命令显示文档作为一个HTML文件或文本在MATLAB命令窗口。当你点击文档链接超链接,Stateflow评估和显示文档的链接。

另请参阅

对象

工具

相关的话题