主要内容

修改图表的操作语言

Stateflow®图表在仿真软件金宝app®模型有一个动作语言属性,它定义状态和转换动作的语法。图表画布左下角的图标表示图表的操作语言。

  • MATLAB®作为行动语言。

  • C作为行动语言。

中可以更改图表的操作语言动作语言“图表属性”对话框中的。有关更多信息,请参见作为动作语言语法的MATLAB与C的区别

更改默认操作语言

MATLAB是新的状态流程图的默认操作语言语法。要创建一个使用C作为操作语言的图表,输入:

sfnew- c

要更改新图表的默认操作语言,请使用以下命令:

命令 结果
sfpref(“ActionLanguage”、“MATLAB”) 所有新创建的图表都使用MATLAB作为操作语言,除非在sfnew
sfpref(“ActionLanguage”、“C”) 所有新创建的图表都使用C语言作为操作语言,除非在sfnew

有关更多信息,请参见sfpref

使用时自动校正MATLAB作为行动语言

使用MATLAB作为动作语言的状态流程图自动将常见的C构造修正为MATLAB语法:

  • 递增和递减操作,如+ +一个,.例如,+ +更改为= + 1

  • 分配操作,例如+ = ba - b =* = b,a / b =.例如,+ = b更改为一个= a + b

  • 评估操作,如一个= b !!.例如,一个= b !更改为~ = b

  • 注释标记/// * * /被改变了

要禁用此首选项,可以使用sfpref函数和以下命令:

sfpref (“EnableLabelAutoCorrectionForMAL”, 0)
有关更多信息,请参见sfpref

C到MATLAB语法转换

对于非空图表,当您将操作语言属性从C更改为MATLAB后,一个通知将出现在图表的顶部。通知提供了将C语法转换为MATLAB语法的选项。在通知中,单击链接以在图表中使用statflow转换语法。被转换的C语法结构包括:

  • 从零开始的索引。

  • 递增和递减操作,如+ +一个,.例如,+ +更改为= + 1

  • 分配操作,例如+ = ba - b =* = b,a / b =.例如,+ = b更改为一个= a + b

  • 二进制操作,比如% % b一个> > b,< < b.例如,% % b更改为快速眼动(a, b)

  • 按位操作,例如a ^a和b,a |.例如,如果图表属性使c位操作被选中,然后a ^更改为bitxor (a, b)

  • C风格的注释标记。例如,/// * * /被改变了

如果图表包含不能转换到MATLAB的C构造,statflow会在对话框中显示一条消息。单击警告链接以在诊断查看器中显示警告。选择是否继续转换受支持的语法。金宝app未转换到MATLAB的C结构包括:

  • 显式类型强制转换类型

  • 等运营商:=

  • 自定义数据

  • 使用访问工作区变量毫升操作符

  • 代码生成中不支持的函数金宝app

  • 十六进制和单精度表示法

  • 上下文相关的常数

使用MATLAB作为动作语言的规则

对图表中的数据使用唯一名称

在图表中使用函数的唯一名称

包括枚举值标识符的类型前缀

使用MATLAB格式进行注释

对向量和矩阵使用基于1的索引

使用圆括号而不是方括号来索引向量和矩阵

在条件操作和转换操作中不使用控制流逻辑

在图形函数中不使用转换操作

用大括号括住转换操作

在状态操作中不声明全局或持久变量

要从模型生成代码,请使用支持代码生成的MATLAB语言特性金宝app

给本地和输出数据赋一个初始值