Как создать состояние потока состояния? - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь создать конечный автомат (поток состояний).Входные данные - вектор.
Условие для переключателя в одном направлении:

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

, а для другого направления:

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

Но я получаю сообщение об ошибке вокно просмотра диагностики:

Незаконное использование матрицы или векторного типа, где ожидался скаляр.

Почему?Но если я введу эти условия в командном окне MATLAB, сообщение об ошибке не появится.

1 Ответ

0 голосов
/ 14 мая 2019

Ваши операторы в скобках содержат логическое индексирование вектора.

Если вы введете их в приглашении matlab, вы получите вектор / массив, содержащий все элементы, удовлетворяющие условию.

Однако дляВ потоке состояний в скобках указано условие перехода, и оно должно оцениваться как единое (скалярное) значение true / false.Там нет смысла приходить к выбору элементов вектора.

Если вы вместо этого хотите сделать переход, если вектор меньше 494 или больше 631, переход должен выглядеть следующим образом:

[vector < 494 || vector > 631]

И вектор должен быть скаляром в контексте потока состояний.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...