MATLAB和C之间的差异作为动作语言的语法
Stateflow®图表在仿真软件金宝app®模型有一个动作语言属性定义的语法状态和转换操作。一个图标左下角的图画布显示图表的动作语言。
MATLAB®作为动作语言。
C作为动作语言。
MATLAB是默认动作语言语法新Stateflow图表。创建一个表,使用C作为动作语言,输入:
sfnew- c
比较功能的语言
此表列出了最重要的两种动作语言之间的功能差异。
功能 | MATLAB作为动作语言 | C作为动作语言 |
---|---|---|
向量和矩阵索引 |
从索引由括号和逗号分隔开的。例如, |
使用方括号分隔的从零开始的索引。例如, |
C结构:
|
MATLAB语法自动校对功能。例如, |
金宝app支持。看到金宝app支持图表数据的操作。 |
条件和循环控制语句在国家行动 |
不受支持金宝app的。条件和循环模式,使用图形化的函数。看到重用逻辑模式通过定义图形功能。 |
|
格式的转换操作 |
自动校对功能包含过渡行为与括号 |
不需要附上过渡行为与括号 |
订购的平行状态 |
明确的命令。看到执行顺序为平行状态。 |
显式或隐式排序。看到执行顺序为平行状态。 |
适应数据 |
修改适应图表中的数据状态和转换操作。有关更多信息,请参见适应可变数据图表,使用MATLAB作为行动的语言。 |
修改适应图表数据通过使用:
计算与适应所有数据必须发生在这些功能,而不是直接在状态或转换。有关更多信息,请参见适应可变数据图表,使用C作为行动的语言。 |
定点结构:
|
不受支持金宝app的。 |
金宝app支持。看到在C图覆盖定点推广和定点上下文相关的常数。 |
复杂的数据 |
使用复数表示法 |
使用 |
数据类型传播 |
遵循MATLAB输入规则。例如,添加数据的类型 |
遵循C输入规则。例如,添加数据的类型 |
显式类型转换操作 |
使用其中一种铸造形式: 的 |
使用其中一种铸造形式:
类型的关键字 |
标量扩张 | 不受支持金宝app的。 |
金宝app支持。看到赋值矩阵的所有元素。 |
字符串数据 | 不受支持金宝app的。 |
金宝app支持。看到通过使用字符串管理文本信息。 |
规范的数据属性:
|
不受支持金宝app的。 |
金宝app支持。有关更多信息,请参见: |
图形数据的范围、真值表和MATLAB函数 |
常数 ,参数 ,输入 ,输出 |
当地的 ,常数 ,参数 ,输入 ,输出 ,临时 |
点符号用于指定州,本地数据,信息,和当地事件在MATLAB函数 |
金宝app支持。看到通过使用点符号识别数据。 |
不受支持金宝app的。 |
自定义代码函数和变量 | 行为取决于导入自定义代码配置参数。
|
支持自定义代码函数和变量的状态和转换。金宝app |
行存储阵列布局在生成的代码 | 金宝app支持。看到选择阵列布局的矩阵生成的代码。 |
金宝app支持。看到选择阵列布局的矩阵生成的代码。 |
多维数组布局在生成的代码 | 不受支持金宝app的。 |
金宝app支持本地数据。看到选择阵列布局的矩阵生成的代码。 |
结构参数 |
支持可调和nontunable参数。金宝app |
只支持可调参数。金宝app |
使用全球 |
金宝app支持。 |
不受支持金宝app的。 |
使用MATLAB作为行动指南的语言
使用从索引向量和矩阵
从索引与MATLAB相一致的语法。有关更多信息,请参见索引符号。
使用圆括号代替方括号索引向量和矩阵
这个声明是有效的:
(2、5)= 0;
这个声明是无效的:
一个[2][5]= 0;
有关更多信息,请参见索引符号。
使用MATLAB格式的评论
使用%
指定的评论与MATLAB状态和转换的一致性。例如,下面的评论是有效的:
%,这是一个有效的评论风格的MATLAB
C风格的评论,等/ /
和/ * * /
自动更正功能使用%。
附上过渡行为与括号
这种转变标签包含一个有效的过渡行动:
E (x > 0) / {x = x + 1;}
这种转变标签不正确,但自动更正功能有效的语法。
E (x > 0) / x = x + 1;
不要使用控制流逻辑条件的行动和过渡的行为
(如控制流逻辑如果
,开关
,为
,而
语句)只支持在国家行动。金宝app使用控制流逻辑条件的行为或过渡动作,导致语法错误。
不声明全局或持续性变量状态的行为
关键字全球
和持续的
不支持政府的行动金宝app。
为本地和输出数据分配一个初始值
当使用MATLAB作为动作语言,数据读没有初始值会导致一个错误。
包括一个类型前缀枚举值的标识符
标识符TrafficColors.Red
是有效的,但红色的
不是。
从模型生成代码,使用MATLAB语言特性支持代码生成金宝app
否则,使用coder.extrinsic
电话不支持的功能,使金宝app你想要模拟的功能,但不是在生成的代码中。一个支持的特性和功能列表,请金宝app参阅语言中,函数和对象的支持金宝app(金宝app模型)。