В этом примере показано, как включить команды Stateflow ® API в функцию или скрипт MATLAB ®. Создание скрипта команд API позволяет избегать повторных шагов создания графика и воссоздавать ту же модель с помощью одной команды. Для получения дополнительной информации смотрите Обзор API Stateflow.
Функция makeMyModel, который задан в нижней части этой страницы, создает «базовую» диаграмму Stateflow, которую можно повторно использовать в качестве шаблона для приложений.
ch = makeMyModel; view(ch)

Эта функция создает диаграмму Stateflow и возвращает соответствующую Stateflow.Chart объект.
function ch = makeMyModelСоздайте модель и получите доступ к новым Stateflow.Chart объект.
rt = sfroot;
prev_machines = find(rt,'-isa','Stateflow.Machine');
sfnew;
curr_machines = find(rt,'-isa','Stateflow.Machine');
m = setdiff(curr_machines,prev_machines);
ch = find(m,'-isa','Stateflow.Chart');Создайте A состояния на графике.
sA = Stateflow.State(ch);
sA.Name = 'A';
sA.Position = [50 50 310 200];Создайте A1 состояния внутри состояния A.
sA1 = Stateflow.State(ch);
sA1.Name = 'A1';
sA1.Position = [80 120 90 60];Создайте A2 состояния внутри состояния A.
sA2 = Stateflow.State(ch);
sA2.Name = 'A2';
sA2.Position = [240 120 90 60];Создайте переход от A1 на A2.
tA1A2 = Stateflow.Transition(ch);
tA1A2.Source = sA1;
tA1A2.Destination = sA2;
tA1A2.SourceOClock = 3;
tA1A2.DestinationOClock = 9; Добавьте переход по умолчанию в состояние A.
dtA = Stateflow.Transition(ch);
dtA.Destination = sA;
dtA.DestinationOClock = 0;
dtA.SourceEndPoint = dtA.DestinationEndpoint-[0 30];
dtA.MidPoint = dtA.DestinationEndpoint-[0 15];Добавьте переход по умолчанию в состояние A1.
dtA1 = Stateflow.Transition(ch);
dtA1.Destination = sA1;
dtA1.DestinationOClock = 0;
dtA1.SourceEndPoint = dtA1.DestinationEndpoint-[0 30];
dtA1.MidPoint = dtA1.DestinationEndpoint-[0 15];
end