我正在尝试创建状态机(状态流)。输入是向量。
朝一个方向切换的条件是:
[vector(vector < 494 | vector > 631)]
,另一个方向:
[vector(vector > 494 & vector < 631)]
但是我在诊断查看器窗口中收到一条错误消息:
在期望有标量的地方非法使用矩阵或向量类型。
为什么?但是,如果我在MATLAB命令窗口中键入这些条件,则不会出现错误消息。
答案 0 :(得分:0)
您的方括号语句包含vector的逻辑索引。
如果您在matlab提示符下键入它们,您将获得一个包含满足条件的所有要素的向量/数组。
但是,对于状态流,方括号指示转换的条件,并且必须评估为单个(标量)是/否。在那里,没有必要选择向量的元素。
如果您有兴趣在向量小于494或大于631时进行过渡,则过渡应类似于:
[vector < 494 || vector > 631]
向量必须在状态流上下文中为标量。