主要内容

修改图的动作语言

Simulink® 模型中的 Stateflow® 图具有一个动作语言属性,该属性定义状态和转移动作的语法。图的画布左下角的图标表示该图的动作语言。

  • MATLAB® 作为动作语言。

  • C 语言作为动作语言。

在动作语言之间转换图

要在动作语言之间转换,请更改动作语言图属性。在“图属性”对话框中,选择新动作语言。如果您的图包含动作,Stateflow 会通知您有转换语法模式的选项。

更改默认动作语言

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

sfnew -C

要更改新图的默认动作语言,请使用 sfpref 函数。例如,要将 C 设置为新图的动作语言,请输入:

sfpref(ActionLanguage="C");

C 到 MATLAB 的语法转换

当您将具有现有动作的图从 C 动作语言更改为 MATLAB 动作语言时,Stateflow 会在图顶部显示通知。点击通知中的转换链接可更新受支持的语法模式。

Stateflow 将以下 C 构造转换为 MATLAB 语法:

  • 数组索引A[0][1] 变为 A(1,2)

    增量运算a++ 变为 a = a+1

    赋值运算a += b 变为 a = a+b

    求余运算a %% b 变为 rem(a,b)

    移位运算a >> b 变为 bitshift(a,-b)

    按位运算a ^ b 变为 bitxor(a,b)(当选择“启用 C 语言位运算”时)

    注释///* */ 变为 %

您必须手动更新:

  • 使用 casttype 运算符的显式类型转换。

  • 指针运算符,如 &*

  • 特殊赋值运算符 :=

  • 自定义数据声明。

  • 使用 ml 运算符访问工作区变量。

  • 代码生成不支持的函数。

  • 十六进制记数法和单精度字面值。

  • 上下文相关常量。

另请参阅

主题