Stateflow 图中的向量和矩阵
向量和矩阵将标量数据组合成单一的多维数据对象。您可以修改单个元素或对整个向量和矩阵执行算术运算。有关详细信息,请参阅Stateflow 中向量和矩阵的运算。
定义向量和矩阵数据
按照添加 Stateflow 数据中所述将一个数据对象添加到图中。
将数据对象的大小属性设置为向量或矩阵的维度。请参阅指定 Stateflow 数据的大小。例如:
要指定 4×1 列向量,请输入
4
。要指定 1×4 行向量,请输入
[1 4]
。要指定 3×3 矩阵,请输入
[3 3]
。
为该数据对象设置初始值属性。请参阅初始值。
要为向量或矩阵的所有元素指定零值,请将初始值留空。如果不指定初始值,所有元素都会初始化为 0。
要为向量或矩阵的所有元素指定相同的值,请输入一个标量值。所有元素都会初始化为您指定的标量值。
要为向量或矩阵的每个元素指定不同值,请输入一个实数值数组。例如:
要初始化 4×1 列向量,您可以输入
[1; 2; 3; 4]
。要初始化 1×4 行向量,您可以输入
[1 2 3 4]
。要初始化 3×3 矩阵,您可以输入
[1 2 3; 4 5 6; 7 8 9]
。
按照设置数据属性中所述,设置数据对象的名称、作用域、基类型和其他属性。
您可以使用表达式来指定向量或矩阵的大小和初始值。表达式可以是数值、常量、参数、变量、算术运算以及 MATLAB® 函数调用的组合。有关详细信息,请参阅使用 MATLAB 表达式指定数据属性。
向量和矩阵的适用场景
您可以在 Stateflow® 层次结构的以下级别定义向量和矩阵:
图
子图
状态
函数
您可以使用向量和矩阵定义以下各项:
输入数据
输出数据
局部数据
函数输入
函数输出
您还可以使用向量和矩阵作为以下各项的参量:
状态动作
转移动作
MATLAB 函数
真值表函数
图形函数
Simulink® 函数
更改检测运算符
Stateflow 图中向量和矩阵的规则
对按元素运算使用相等维度的操作数
如果对维度不相等的向量或矩阵执行按元素运算,则在仿真模型时图会生成大小不匹配错误。有关详细信息,请参阅Stateflow 中向量和矩阵的运算。
不要使用 ml
基类型定义向量和矩阵
ml 基类型仅支持标量数据。如果使用 ml 基类型定义向量或矩阵,则在仿真模型时图会生成错误。有关详细信息,请参阅 ml Data Type。
不要使用复数来设置向量和矩阵的初始值
如果使用复数初始化向量或矩阵的元素,则在仿真模型时图会生成错误。在初始化后,可以将向量和矩阵的值设置为复数。有关详细信息,请参阅Complex Data in Stateflow Charts。
不要在时序逻辑运算符中使用向量和矩阵
由于时间是标量,因此无法使用向量或矩阵作为时序逻辑运算符的参量。有关详细信息,请参阅使用时序逻辑控制图的执行。