Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试创建一个状态机(状态流)。输入是一个向量。 单向切换的条件是:
[vector(vector < 494 | vector > 631)]
而对于另一个方向:
[vector(vector > 494 & vector < 631)]
但我在诊断查看器窗口中收到一条错误消息:
在需要标量的情况下非法使用矩阵或向量类型。
为什么?但是,如果我在 MATLAB 命令窗口中键入这些条件,则不会出现错误消息。
您的括号语句包含向量的逻辑索引。
如果您在 matlab 提示符下键入它们,您将获得一个向量/数组,其中包含满足条件的所有元素。
但是,对于状态流,括号表示转换的条件,并且必须评估为单个(标量)真/假。在那里选择向量的元素是没有意义的。
如果您有兴趣在向量小于 494 或大于 631 时进行转换,则转换应如下所示:
[vector < 494 || vector > 631]
并且向量必须是状态流上下文中的标量。