generate::MATLAB

Сгенерируйте отформатированную строку MATLAB

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

generate::MATLAB(e, <NoWarning>)

Описание

generate::MATLAB(e) генерирует код MATLAB® для выражения MuPAD® e.

generate::MATLAB возвращает отформатированную строку MATLAB, представляющую выражение, уравнение, список уравнений или матрицы.

generate::MATLAB принимает, что типом конвертированных данных является double. Смотрите пример 1.

Уравнение представляет присвоение в коде MATLAB. Смотрите Пример 4.

При генерации кода MATLAB для матрицы генератор производит матрицу нулей, и затем это заменяет ненулевыми элементами. Смотрите Пример 2.

Используйте generate::optimize функция, чтобы оптимизировать код MuPAD прежде, чем преобразовать его в синтаксис MATLAB. Смотрите Пример 5.

Чтобы отобразить сгенерированный код MATLAB по экрану, используйте print функция. Используйте параметр печати Unquoted удалить кавычки и расширить специальные символы как разрывы строки и вкладки. Если линия сгенерированного кода более длинна, чем TEXTWIDTH установка, print функционируйте пропуски что линия в несколько более коротких линий. Вставленный символ продолжения линии (\) не допустимо в MATLAB. Чтобы постараться не вставлять символы продолжения линии, увеличьте TEXTWIDTH установка или использование fprint функционируйте, чтобы записать сгенерированный код в файл.

generate::MATLAB не создает функцию MATLAB. Можно распечатать выводимую строку к файлу с помощью fprint функция с Unquoted опция. Смотрите Пример 6.

При Работе от рабочего пространства MATLAB можно создать функцию MATLAB, содержащую выражение. Чтобы вызвать выражение MuPAD от рабочего пространства MATLAB, используйте evalin или feval функции. Смотрите Создают функции MATLAB из Выражений MuPAD.

Если вы работаете с продуктами Simulink®, можно скопировать сгенерированный код и вставить его в блок Simulink. Кроме того, можно вызвать выражение MuPAD от рабочего пространства MATLAB с помощью evalin или feval функции. При Работе от рабочего пространства MATLAB можно автоматически создать блок Simulink, содержащий выражение. Смотрите Создают блоки MATLAB function из Выражений MuPAD.

NoWarning опция позволяет вам отключить предупреждения. Смотрите Пример 7.

Примеры

Пример 1

По умолчанию MATLAB хранит все числовые значения как с двойной точностью с плавающей точкой. В соответствии с типом данных MATLAB по умолчанию, generate::MATLAB преобразует элементы выражений, уравнений и матриц к double формат:

print(Unquoted, generate::MATLAB(x^2 + y/3 + 1/6))
t0 = y/3.0+x^2+1.0/6.0;

Пример 2

Генератор производит матрицу нулей, и затем он заменяет ненулевые элементы:

A:= matrix([[1, 0, 0],[0, 0, 1]]):
print(Unquoted, generate::MATLAB(A))
A = reshape([1.0,0.0,0.0,0.0,0.0,1.0],[2,3]);

Пример 3

Если первый индекс массива не 1, generate::MATLAB функция выдает предупреждение:

A:= array(1..2, 2..3, [[1,2],[3,4]]):
print(Unquoted, generate::MATLAB(A))
Warning: Array index 'A[1..2, 2..3]' out of range 1..n.
A = reshape([1.0,3.0,2.0,4.0],[2,2]);

Пример 4

При генерации кода MATLAB от уравнений вы получаете присвоения вместо уравнений. Например, сгенерируйте код MATLAB для следующего списка уравнений:

f := generate::MATLAB([x = exp(t*s), y = sin(t)*cos(s)]):
print(Unquoted, f)
x = exp(s*t);
y = cos(s)*sin(t);

Пример 5

generate::MATLAB функция не оптимизирует ваш код:

print(Unquoted,
      generate::MATLAB([x = a + b, y = (a + b)^2])):
x = a+b;
y = (a+b)^2;

Можно использовать generate::optimize функция прежде, чем преобразовать ваш код MuPAD в синтаксис MATLAB. Например, эта функция может сократить количество операций путем нахождения общих подвыражений:

f := generate::optimize([x = a + b, y = (a + b)^2]):
print(Unquoted,
      generate::MATLAB(f)):
x = a+b;
y = x^2;

Пример 6

Чтобы создать файл с отформатированной строкой MATLAB, представляющей символьное выражение, используйте fprint функция:

A:= matrix([[1, 0, 0],[0, 0, 1]]):
fprint(Unquoted, Text, "matrixA.m", generate::MATLAB(A))

Если файл matrixA.m уже существует, fprint заменяет существующий код MATLAB на конвертированное символьное выражение. Можно открыть и отредактировать получившийся файл.

Пример 7

По умолчанию, generate::MATLAB функция может предупреждения о проблемах:

print(Unquoted, generate::MATLAB(g(x)))
Warning: Function 'g' not verified to be a valid MATLAB function.
t0 = g(x);

Если вы начали использовать generate::MATLAB недавно, предупреждения могут помочь вам идентифицировать потенциальные проблемы в конвертированном коде. Если вы хотите отключить предупреждения, используйте NoWarning опция:

print(Unquoted, generate::MATLAB(g(x), NoWarning))
t0 = g(x);

Параметры

e

Выражение, уравнение, список уравнений или матрица

Опции

NoWarning

Отключить предупреждения.

Возвращаемые значения

generate::MATLAB возвращает строку, содержащую код MATLAB.

Смотрите также

Функции MuPAD

Для просмотра документации необходимо авторизоваться на сайте