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.
По умолчанию 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;
Генератор производит матрицу нулей, и затем он заменяет ненулевые элементы:
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]);
Если первый индекс массива не 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]);
При генерации кода 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);
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;
Чтобы создать файл с отформатированной строкой MATLAB, представляющей символьное выражение, используйте fprint
функция:
A:= matrix([[1, 0, 0],[0, 0, 1]]): fprint(Unquoted, Text, "matrixA.m", generate::MATLAB(A))
Если файл matrixA.m уже существует, fprint
заменяет существующий код MATLAB на конвертированное символьное выражение. Можно открыть и отредактировать получившийся файл.
По умолчанию, 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);
|
Выражение, уравнение, список уравнений или матрица |
|
Отключить предупреждения. |
generate::MATLAB
возвращает строку, содержащую код MATLAB.