При использовании API Stateflow ® укажите метки состояний и переходов, назначив вектор символов LabelString собственность.
Для извлечения частей метки состояния или перехода используйте свойства Stateflow.State и Stateflow.Transition объекты, перечисленные в этой таблице.
| Объект API | Собственность | Описание |
|---|---|---|
Stateflow.State | DuringAction | Текст в during действие в этом состоянии. Это свойство не поддерживается в диаграммах Мура. |
EntryAction | Текст в entry действие в этом состоянии. Это свойство не поддерживается в диаграммах Мура. | |
ExitAction | Текст в exit действие в этом состоянии. Это свойство не поддерживается в диаграммах Мура. | |
MooreAction | Текст в действии в этом состоянии. Это свойство поддерживается только в диаграммах Мура. Дополнительные сведения см. в разделе Правила проектирования диаграмм Мура. | |
Name | Имя этого состояния. | |
OnAction | Текст в {'trigger1','action1',...,'triggerN','actionN'}Это свойство не поддерживается в диаграммах Мура. | |
Stateflow.Transition | Condition | Текст в условии этого перехода. |
ConditionAction | Текст в действии условия для этого перехода. | |
TransitionAction | Текст в действии перехода для этого перехода. | |
Trigger | Текст в триггере этого перехода. |
За исключением Name, все эти свойства доступны только для чтения. Дополнительные сведения о синтаксисе меток состояния и перехода см. в разделах Метки состояния и Метки перехода.
Предположим, что tr является Stateflow.Transition объект, соответствующий переходу. Можно назначить метку, определяющую триггер, условие и действие условия для этого перехода, введя:
tr.LabelString = 'trigger[guard]{action();}';
Чтобы извлечь триггер, условие и действие условия, указанные меткой перехода, введите:
trigger = tr.Trigger
trigger =
'trigger'cond = tr.Condition
cond =
'guard'action = tr.ConditionAction
action =
'action();'Существует два эквивалентных способа ввода многострочных меток для состояний и переходов. Например, Предположим, что sA является Stateflow.State объект, соответствующий состоянию. Ввод многострочной метки с помощью entry и during действия, можно:
Вызов функции MATLAB ®sprintf и использовать escape-последовательность \n для вставки новых символов строки:
str = sprintf('A\nen: action1();\ndu: action2();\nen,du: action3();');
sA.LabelString = str;Введите конкатенированное текстовое выражение, использующее целое число 10 в качестве ASCII-эквивалента символа новой строки:
str = ['A',10, ... 'en: action1();',10, ... 'du: action2();',10, ... 'en,du: action3();']; sA.LabelString = str;

Чтобы извлечь имя состояния, entry действия, и during действие, указанное меткой состояния, введите:
name = sA.Name
name =
'A'entry = sA.EntryAction
entry =
' action1();
action3();'during = sA.DuringAction
during =
' action2();
action3();'