Блокноты 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