Преобразовать ваш MATLAB® код в Stateflow® блок-схемы и графические функции, используйте Pattern Wizard. Поддерживаемые шаблоны для преобразования включают:
if
If-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. Для получения дополнительной информации смотрите, Выполняют Автономную диаграмму.