状态流程图和 C 动作语言。设置数组值以在单个步骤中输出一个向量

Posted

技术标签:

【中文标题】状态流程图和 C 动作语言。设置数组值以在单个步骤中输出一个向量【英文标题】:Stateflow chart and C Action Language. Set array values for give in output a vector in single step 【发布时间】:2020-08-09 09:20:54 【问题描述】:

对不起,这可能是个愚蠢的问题,但我无法使用 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 chart screenshot

谢谢!

【问题讨论】:

【参考方案1】:

嗯,我有两种方法:

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

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

【讨论】:

谢谢 gautam264,我已经通过使用受控开关的索引值应用了解决方法。我确信第一种方法更容易。我会试试我需要下一个时间:)

以上是关于状态流程图和 C 动作语言。设置数组值以在单个步骤中输出一个向量的主要内容,如果未能解决你的问题,请参考以下文章

python 格式化单个值以在符合RFC4180的CSV文件中使用。使用逗号将这个函数返回的多个值连接到crea

从 xxx.plist 获取值以在 Target 中构建设置

将浮点值存储在数组中,并分析最后 20 个值以在 C++ 中检查

通过浏览器插件设置值以在 iframe 中形成

从 json 会话返回值以在会话外使用

Azure 数据工厂 - 查找值以在 ForEach 复制任务中选择语句