Чтобы преобразовать код MATLAB ® в блок-схемы и графические функции Stateflow ®, используйте мастер шаблонов. Поддерживаемые шаблоны для преобразования включают в себя:
if, if-elseи другие вложенные заявления о принятии решений.
for и while петли.
switch заявления.
Мастер шаблонов может преобразовывать функции и сценарии MATLAB.
Функции MATLAB преобразуются в графические функции Stateflow.
Сценарии MATLAB преобразуются в блок-схемы Stateflow.
Преобразование кода MATLAB поддерживается только в автономных диаграммах Stateflow. Дополнительные сведения см. в разделе Создание диаграмм потока состояний для выполнения в виде объектов MATLAB.
Этот сценарий MATLAB эмпирически проверяет один экземпляр гипотезы Коллаца. Если задан числовой ввод u, сценарий вычисляет последовательность града n0 = u, n1, n2, n3, ⋯ путем итерации этого правила:
Если ni является четным, то ni + 1 = ni/2.
Если ni нечетный, то ni + 1 = 3ni + 1.
Гипотеза Коллаца утверждает, что каждое положительное целое число имеет последовательность градов, которая в конечном итоге достигает единицы.
% 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На вкладке Диаграмма состояния выберите Шаблон > Выбрать файл.
В диалоговом окне выберите сценарий MATLAB и нажмите кнопку «Открыть». Мастер шаблонов добавляет блок-схему и графическую функцию в диаграмму Stateflow. Дважды щелкните графическую функцию для просмотра ее содержимого.

На панели Символы (Symbols) щелкните Разрешить неопределенные символы (Resolve Undefined Symbols).
Редактор Stateflow
разрешает u и y в виде локальных данных.
Сохраните диаграмму.
Чтобы выполнить диаграмму из редактора Stateflow, на панели «Символы» введите значение u = 9 и нажмите «Выполнить».
Во время
выполнения блок-схемы редактор 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 в диаграммах потока состояний.
Примечание
Предположим, что вы используете nargin в функции MATLAB, которая преобразуется в графическую функцию диаграммы. Поскольку nargin подсчитывает объект диаграммы как один из входных аргументов графической функции, значение nargin в графической функции равно единице плюс значение nargin в исходной функции MATLAB. Дополнительные сведения см. в разделе Выполнение автономной диаграммы.