主要内容

修改图表的动作语言

州流程®Simulink中的万博1manbetx图表®模型有一个动作语言属性,它定义了状态和转换动作的语法。图表画布左下角的图标表示图表的动作语言。

  • 马铃薯®作为动作语言。

  • c作为动作语言。

控件中的图表的动作语言可以更改动作语言框图表属性对话框。有关更多信息,请参阅matlab和c为动作语言语法之间的差异

更改默认操作语言

MATLAB是新StateFlow图表的默认操作语言语法。要创建使用C作为操作语言的图表,请输入:

sfnew.- c

要更改新图表的默认操作语言,请使用这些命令。

命令 结果
sfpref(“ActionLanguage”、“MATLAB”) 除非另有规定,否则创建的所有新图表都创建了MATLAB作为动作语言sfnew.
sfpref(“ActionLanguage”、“C”) 除非另有规定,否则创建的所有新图表都作为动作语言sfnew.

有关更多信息,请参阅SFPREF.

使用时自动校正马铃薯作为动作语言

使用MATLAB作为动作语言的状态流图自动纠正通用C结构到MATLAB语法:

  • 增量和减少操作,如+ +一个,.例如,+ +改变为= + 1

  • 赋值操作,如a + = ba - b =a * = b,A / = B.例如,a + = b改变为一个= a + b

  • 评估业务如a!= b!一种.例如,a!= b改变为~ = b

  • 评论标记/// * * /改变为

要禁用此首选项,可以使用SFPREF.功能和以下命令:

SFPREF(“EnableLabelAutoCorrectionForMAL”,0)
有关更多信息,请参阅SFPREF.

C到MATLAB的语法转换

对于非空图表,将动作语言属性从C更改为MATLAB后,图表顶部显示通知。通知提供了将一些C语法转换为Matlab语法的选项。在通知中,单击“链接”以在图表中具有StateFlow转换语法。转换的C语法构造包括:

  • 基于零索引。

  • 增量和减少操作,如+ +一个,.例如,+ +改变为= + 1

  • 赋值操作,如a + = ba - b =a * = b,A / = B.例如,a + = b改变为一个= a + b

  • 二元操作,如A %% B.A >> B.,< < b.例如,A %% B.改变为REM(A,B)

  • 按位操作等a ^a和b,a |B..例如,如果图表属性启用C位操作选择,然后a ^改变为Bitxor(A,B)

  • C样式评论标记。例如,/// * * /改变为

如果图表包含无法转换为MATLAB的C构造,则StateFlow在对话框中显示一条消息。单击警告链接以显示诊断查看器中的警告。选择是否继续使用支持的语法的转换。万博1manbetx不转换为MATLAB的C构造包括:

  • 明确的类型铸造类型

  • 等运营商*:=

  • 自定义数据

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

  • 代码生成中不支持的函数万博1manbetx

  • 十六进制和单一精密符号

  • 上下文敏感常量

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

在图表中使用唯一名称进行数据

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

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

使用MATLAB格式进行注释

使用基于一个基于索引的向量和矩阵

使用括号而不是括号索引到向量和矩阵

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

不要在图形功能中使用转换操作

用括号括起转换操作

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

要从模型中生成代码,请使用代码生成所支持的MATLAB语言特性万博1manbetx

为本地和输出数据分配初始值