如何生成状态流条件?

时间:2018-10-08 20:18:39

标签: matlab stateflow

我正在尝试创建状态机(状态流)。输入是向量。
朝一个方向切换的条件是:

[vector(vector < 494 | vector > 631)]

,另一个方向:

[vector(vector > 494 & vector < 631)]

但是我在诊断查看器窗口中收到一条错误消息:

  

在期望有标量的地方非法使用矩阵或向量类型。

为什么?但是,如果我在MATLAB命令窗口中键入这些条件,则不会出现错误消息。

1 个答案:

答案 0 :(得分:0)

您的方括号语句包含vector的逻辑索引。

如果您在matlab提示符下键入它们,您将获得一个包含满足条件的所有要素的向量/数组。

但是,对于状态流,方括号指示转换的条件,并且必须评估为单个(标量)是/否。在那里,没有必要选择向量的元素。

如果您有兴趣在向量小于494或大于631时进行过渡,则过渡应类似于:

[vector < 494 || vector > 631]

向量必须在状态流上下文中为标量。