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, используйте функции feval или evalin. Смотрите Создают функции MATLAB из Выражений MuPAD.

Если вы работаете с продуктами Simulink®, можно скопировать сгенерированный код и вставить его в блок Simulink. Кроме того, можно вызвать выражение MuPAD от рабочего пространства MATLAB с помощью функций feval или evalin. При Работе от рабочего пространства 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