Как создать состояние потока состояния?
Я пытаюсь создать конечный автомат (поток состояний). Вход является вектором.
Условие для переключения в одном направлении:
[vector(vector < 494 | vector > 631)]
и для другого направления:
[vector(vector > 494 & vector < 631)]
Но я получаю сообщение об ошибке в окне просмотра диагностики:
Незаконное использование матрицы или векторного типа, где ожидался скаляр.
Зачем? Но если я введу эти условия в командном окне MATLAB, сообщение об ошибке не появится.
0 ответов
Ваши скобки содержат логическую индексацию вектора.
Если вы введете их в приглашении Matlab, вы получите вектор / массив, содержащий все элементы, удовлетворяющие условию.
Однако для потока состояний скобки указывают условие перехода и должны оцениваться как одно (скалярное) истина / ложь. Здесь нет смысла приходить к выделению элементов вектора.
Если вместо этого вы хотите выполнять переход всякий раз, когда вектор меньше 494 или больше 631, переход должен выглядеть так:
[vector < 494 || vector > 631]
И вектор должен быть скаляром в контексте потока состояний.