0

对不起,也许是一个愚蠢的问题,但我有问题使用 C 动作语言在状态流程图中设置我的数组变量。

通常在 c 语言中,我可以使用“ A[]={1,3,2}; ”将所有值放入我的静态数组中,但是在状态流程图中,使用 C ActionLanguage 我怎么能呢?(在matlab语言中工作,但我需要在C中)我已经用输出范围定义了我的变量(因为它是),将大小设置为3(我想要一个包含3个元素的数组),将第一个索引设置为“0”和输入int8。

如果想要输出数组“1,2,3”,我会写“gates=[1,2,3];”,我也尝试过“gates=[1 2 3]”等,但我收到语法错误。我的错误是什么?我已阅读此链接:https ://it.mathworks.com/help/stateflow/ug/operations-for-vectors-and-matrices.html

为矩阵的所有元素赋值 在使用 MATLAB 作为动作语言的图表中,您可以使用单个动作来指定向量或矩阵的所有元素。例如,此操作将 2×3 矩阵 A 的每个元素分配给不同的值:A = [1 2 3; 4 5 6];在使用 C 作为动作语言的图表中,您可以使用标量扩展将向量或矩阵的所有元素设置为相同的值。标量扩展转换标量数据以匹配向量或矩阵数据的维度。例如,此操作将矩阵 A 的所有元素设置为 10 A=10;

但不解释如何在所有数组中设置不同的值,而且我需要状态流程图的输出是一个步骤:(。在图像中有一个步骤有语法错误。有人可以解释我怎么能解决了吗? Stateflow 图截图

谢谢你!

4

1 回答 1

0

好吧,我有两种方法:

  1. 定义 ex 的值:g1 = [1 0 0]; g0 = [0,0,0] 在 MATLAB 工作区中。然后在您的状态流中使用诸如 gates = ml.g1; 之类的值。这适用于 C 动作语言。(附图提供了此方法的预览) 在此处输入图像描述
  2. 在图表中实现一个 for 循环(可能是图形函数或 MATLAB 函数),用于将值分配给输出数组。

在这两种方法中,我认为第一种方法更容易处理,如果变量“gates”采用的值的数量有限的话。否则,请使用方法 2。

于 2020-05-02T12:08:16.077 回答