Main Content

Stateflow 图中的向量和矩阵

向量矩阵将标量数据组合成单一的多维数据对象。您可以修改单个元素或对整个向量和矩阵执行算术运算。有关详细信息,请参阅Stateflow 中向量和矩阵的运算

定义向量和矩阵数据

  1. 按照添加 Stateflow 数据中所述将一个数据对象添加到图中。

  2. 将数据对象的大小属性设置为向量或矩阵的维度。请参阅指定 Stateflow 数据的大小。例如:

    • 要指定 4×1 列向量,请输入 4

    • 要指定 1×4 行向量,请输入 [1 4]

    • 要指定 3×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]

  4. 按照设置数据属性中所述,设置数据对象的名称、作用域、基类型和其他属性。

您可以使用表达式来指定向量或矩阵的大小和初始值。表达式可以是数值、常量、参数、变量、算术运算以及 MATLAB® 函数调用的组合。有关详细信息,请参阅使用 MATLAB 表达式指定数据属性

向量和矩阵的适用场景

您可以在 Stateflow® 层次结构的以下级别定义向量和矩阵:

  • 子图

  • 状态

  • 函数

您可以使用向量和矩阵定义以下各项:

  • 输入数据

  • 输出数据

  • 局部数据

  • 函数输入

  • 函数输出

您还可以使用向量和矩阵作为以下各项的参量:

  • 状态动作

  • 转移动作

  • MATLAB 函数

  • 真值表函数

  • 图形函数

  • Simulink® 函数

  • 更改检测运算符

Stateflow 图中向量和矩阵的规则

对按元素运算使用相等维度的操作数

如果对维度不相等的向量或矩阵执行按元素运算,则在仿真模型时图会生成大小不匹配错误。有关详细信息,请参阅Stateflow 中向量和矩阵的运算

不要使用 ml 基类型定义向量和矩阵

ml 基类型仅支持标量数据。如果使用 ml 基类型定义向量或矩阵,则在仿真模型时图会生成错误。有关详细信息,请参阅 ml Data Type

不要使用复数来设置向量和矩阵的初始值

如果使用复数初始化向量或矩阵的元素,则在仿真模型时图会生成错误。在初始化后,可以将向量和矩阵的值设置为复数。有关详细信息,请参阅Complex Data in Stateflow Charts

不要在时序逻辑运算符中使用向量和矩阵

由于时间是标量,因此无法使用向量或矩阵作为时序逻辑运算符的参量。有关详细信息,请参阅使用时序逻辑控制图的执行

相关主题