Преобразовать ваш MATLAB® код в Stateflow® блок-схемы и графические функции, используйте Pattern Wizard. Поддерживаемые шаблоны для преобразования включают:
ifIf-Else, и другие вложенные операторы решения.
for и while циклы.
switch операторы.
Pattern Wizard может преобразовать функции MATLAB и скрипты.
Функции MATLAB преобразованы в графические функции Stateflow.
Скрипты MATLAB преобразованы в блок-схемы Stateflow.
Преобразование кода MATLAB поддерживается только в автономных диаграммах Stateflow. Для получения дополнительной информации смотрите, Создают диаграммы Stateflow для Выполнения как объекты MATLAB.
Этот скрипт MATLAB опытным путем проверяет один экземпляр догадки Collatz. Когда дали числовой вход u, скрипт вычисляет последовательность градины n 0 = u, n 1, n 2, n 3, ⋯ путем итерации этого правила:
Если n i являюсь четной, то n i+1 = n i/2.
Если n i являюсь нечетной, то n i+1 = 3ni + 1.
Догадка Collatz утверждает, что каждое положительное целое число имеет последовательность градины, которая в конечном счете достигает единицы.
% Hailstone sequence u, c(u), c(c(u)),... y = [u]; while y(end) ~= 1 y(end+1) = c(y(end)); end disp(y); function n = c(n) % Compute next number in hailstone sequence. % If n is even, then c(n) = n/2. % If n is odd, then c(n) = 3*n+1. if rem(n,2) == 0 n = n/2; else n = 3*n+1; end end
while цикл, который неоднократно вызывает вспомогательный функциональный c пока это не производит выходное значение одного. Функциональный c состоит из условного if- else оператор, выход которого зависит от четности входа.Преобразовывать этот скрипт в блок-схему и графическую функцию:
Откройте новую автономную диаграмму.
edit hailstone.sfxНа вкладке State Chart выберите Pattern> Select File.
В диалоговом окне выберите скрипт MATLAB и нажмите Open. Pattern Wizard добавляет блок-схему и графическую функцию к вашей диаграмме Stateflow. Дважды кликните графическую функцию, чтобы видеть ее содержимое.

В панели Символов нажмите Resolve Undefined Symbols
. Редактор Stateflow разрешает u и y как локальные данные.
Сохраните свой график.
Чтобы выполнить график от редактора Stateflow, в панели Символов, вводят значение u = 9 и нажимают Run
. В то время как блок-схема выполняется, редактор Stateflow подсвечивает активные переходы посредством анимации графика. Когда выполнение останавливается, командное окно MATLAB отображает последовательность градины, начиная со значения девять:
9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
Нажмите Stop
.
Можно скопировать сгенерированные блок-схемы и графические функции и вставить их в другие графики, включая диаграммы Stateflow в Simulink® модели. Если ваш код MATLAB использует функциональность, которая ограничивается для генерации кода в Simulink, необходимо изменить действия блок-схемы прежде, чем симулировать график. Для получения дополнительной информации смотрите функции MATLAB Значения внешних параметров Вызова в диаграммах Stateflow.
Примечание
Предположим, что вы используете nargin в функции MATLAB, которую вы преобразуете в графическую функцию в графике. Поскольку nargin считает объект диаграммы как один из входных параметров графической функции, значения nargin в графической функции равно одной плюс значение nargin в исходной функции MATLAB. Для получения дополнительной информации смотрите, Выполняют Автономную диаграмму.