Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
При создании новых объектов в MuPAD® лучшая практика состоит в том, чтобы рассмотреть, какой области объект должен принадлежать. Выбор правильного типа данных с начала помогает вам избежать ненужных преобразований. Тем не менее, некоторые задачи расчета требуют преобразований типов данных. Для таких задач MuPAD позволяет вам преобразовать элементы некоторых областей к элементам других областей.
Чтобы преобразовать объект в различный доменный тип, используйте одну из следующих альтернатив. Некоторые альтернативы не работают на преобразования между конкретными областями.
Используйте принуждать Функцию. Вызовите coerce
функционируйте, чтобы преобразовать объект в элемент заданной области. coerce
функция может вызвать convert
, convert_to
, и coerce
доменные методы. Если преобразование не возможно или если ни один из этих методов не реализован для областей, участвующих в преобразовании, coerce
функция возвращает FAIL
.
Используйте Функцию expr. Вызовите expr
функционируйте, чтобы преобразовать объект в элемент основной области. expr
вызовы функции expr
метод. Если преобразование не возможно или если expr
метод не реализован для заданных областей, expr
функция возвращает FAIL
.
Используйте Конструкторов. Вызовите доменного конструктора области, в которую вы хотите преобразовать объект. Этот подход обычно работает, но он может перестать работать в некоторых случаях.
Вызов методов преобразования области непосредственно. Чтобы использовать этот подход, необходимо знать, какие методы преобразования реализованы для участвующих областей. Эта альтернатива не рекомендуется. Используйте coerce
или expr
функцию вместо этого.
Если вы реализуете новую область, рассматриваете реализацию методов преобразования для той области.
Чтобы преобразовать объект MuPAD в элемент заданной области, используйте coerce
функция. Например, преобразуйте следующий элемент доменного DOM_LIST
к элементу доменного DOM_SET
:
L := [1, 2, 3, 4, 5, 6]; S := coerce(L, DOM_SET)
domtype(L), domtype(S)
Результаты преобразования могут зависеть от исходного доменного типа. Например, создайте массив и матрицу с тем же числом элементов и равняйтесь размерностям:
M := matrix(2, 3, [1, 2, 3, 4, 5, 6]); A := array(1..2, 1..3, [1, 2, 3, 4, 5, 6])
Проверьте тот матричный M
принадлежит доменному Dom::Matrix()
, и массив A
принадлежит доменному DOM_ARRAY
:
domtype(M), domtype(A)
Используйте coerce
функционируйте, чтобы преобразовать оба объекта в элементы доменного DOM_LIST
. coerce
функция преобразует матричный M
к вложенному списку, где внутренние списки представляют строки исходной матрицы. В то же время, coerce
преобразует массив A
к плоскому списку:
LM := coerce(M, DOM_LIST); LA := coerce(A, DOM_LIST)
Оба новых объекта принадлежат основной области списков DOM_LIST
:
domtype(LM), domtype(LA)
Для дальнейших расчетов удалите идентификаторы L
S
M
A
, LM
, и LA
:
delete L, S, M, A, LM, LA
Чтобы преобразовать элемент области библиотеки к элементу области простого ядра, используйте expr
функция. Эта функция не позволяет вам выбирать основную область, в которую она преобразует объект. Если преобразование в основные области не возможно, функция возвращает FAIL
.
expr
функционируйте пытается найти самую простую основную область, в которую это может преобразовать данный объект. Функция также может преобразовать элемент более сложной основной области к более простой основной области. Например, это преобразует полином, представленный одной переменной x
к идентификатору x
:
y := poly(x); expr(y)
Исходный объект y
принадлежит области полиномов. Результат преобразования принадлежит области идентификаторов DOM_IDENT
:
domtype(y), domtype(expr(y))
Если вы вызываете expr
функция для более сложного полинома, функция преобразует тот полином в выражение:
p := poly(x^2 + x + 2); expr(p)
Снова, исходный полином принадлежит области полиномов. На этот раз результат преобразования принадлежит области выражений:
domtype(p), domtype(expr(p))
MuPAD может применить expr
функционируйте к объекту рекурсивно. Если объект содержит условия, которые принадлежат областям библиотеки или усложнили основные области, expr
также попытки преобразовать те элементы условий более простых основных областей. Например, если полиномиальный p
элемент списка, применяя expr
функция к списку преобразует полиномиальный p
к выражению:
matrix(2, 2, [p, 0, 0, 1]); expr(matrix(2, 2, [p, 0, 0, 1]))
expr
функция преобразует матрицу области библиотеки Dom::Matrix()
к массиву области простого ядра DOM_ARRAY
:
M := matrix(2, 3, [1, 2, 3, 4, 5, 6])
domtype(M), domtype(expr(M))
expr
функция преобразует элемент серийной области к выражению основного доменного DOM_EXPR
. Как правило, порядок условий в получившихся изменениях выражения:
s := series(exp(x), x); expr(s)
domtype(s), domtype(expr(s))
Для дальнейших расчетов удалите идентификаторы y
P
M
, и s
:
delete y, p, M, s
Вместо того, чтобы вызвать функции преобразования, можно использовать конструктора области, в которую вы хотите преобразовать объект. Этот подход работает на большинство преобразований, но он может перестать работать в некоторых случаях.
Вызов конструктора необходимой области часто является самым простым способом преобразовать объект в элемент той области. Предположим, что вы хотите преобразовать следующий список L
к матрице:
L := [1, 2, 3, 4, 5, 6]
Чтобы преобразовать список в матрицу, вызовите матричного конструктора matrix
. Используйте аргументы матричного конструктора, чтобы задать размерности необходимой матрицы и списка L
из элементов матрицы. Полученный объект 2×3 матрица доменного Dom::Matrix()
:
matrix(2, 3, L); domtype(%)
В качестве альтернативы можно преобразовать список в матрицу при помощи Dom::Matrix()
:
Dom::Matrix()(2, 3, L); domtype(%)
Для дальнейших расчетов удалите идентификатор L
:
delete L