expr

Преобразуйте в элемент основной области

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

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

Синтаксис

expr(object)

Описание

expr(object) преобразует object в элемент основной области, такой, что все подобъекты являются элементами основных областей также.

expr функция преобразования типов, для преобразования элемента более комплексной области библиотеки, такой как полином или матрица, в элемент области простого ядра.

expr доходы рекурсивно, такой, что все подобъекты возвращенного объекта являются элементами основных областей, или бесконечностями или undefined. Смотрите пример 1 и пример 2.

Эти два специальных объекта infinity и complexInfinity переводятся в идентификаторы с тем же именем expr. Оценка этих идентификаторов дает к исходным объектам. Смотрите Пример 1.

Если object уже принадлежит основной области кроме DOM_POLY, затем expr только применяется рекурсивно к операндам object,если таковые имеются.

Если object полином доменный типDOM_POLY, затем expr применяется рекурсивно к коэффициентам object, и впоследствии результат преобразован в идентификатор, номер или выражение. Смотрите Пример 1.

Если object принадлежит области библиотеки T с "expr" паз, затем соответствующая стандартная программа паза T::expr вызван object в качестве аргумента и результата возвращен.

Это может использоваться, чтобы расширить функциональность expr к элементам пользовательских областей. Если стандартная программа паза не может выполнить преобразование, она должна возвратить FAIL. Смотрите пример 6.

Если доменный T не имеет "expr" паз, затем expr возвращает FAIL.

Результат expr не оценен далее. Используйте eval оценивать его. Смотрите Пример 4.

Примеры

Пример 1

expr преобразует полином в выражение, идентификатор или номер:

expr(poly(x^2 + y, [x])), expr(poly(x)), expr(poly(2, [x]));
map(%, domtype)

expr также работает с объектами infinity, complexInfinity, и undefined:

expr(infinity), expr(complexInfinity), expr(undefined);
map(%, domtype)

Пример 2

Этот пример показывает тот expr работает рекурсивно над выражениями. Все подвыражения, которые являются доменными элементами, преобразованы в выражения. Конструкция с hold(_plus)(..) необходимо начиная с x + i(1) оценил бы к FAIL:

i := Dom::IntegerMod(7):
hold(_plus)(x, i(1));  expr(%)

Пример 3

Функциональный series возвращает элемент доменного Series::Puiseux, который не является основной областью:

s := series(sin(x), x);
domtype(s)

Используйте expr преобразовывать результат в элемент доменного типа DOM_EXPR:

e := expr(s); domtype(e)

Обратите внимание на то, что информация о термине порядка потеряна после преобразования.

Пример 4

expr не оценивает его результат. В этом примере полиномиальный p имеет параметр a и глобальная переменная a имеет значение. expr примененный на полиномиальный p возвращает выражение, содержащее a. Если вы хотите вставить значение a используйте функциональный eval:

p := poly(a*x, [x]):  a := 2:  expr(p);  eval(%)

Пример 5

A элемент типа Dom::Matrix(Dom::Integer):

A := Dom::Matrix(Dom::Integer)([[1, 2], [3, 2]]);  
domtype(A)

В этом случае, expr преобразует A в элемент типа DOM_ARRAY:

a := expr(A); domtype(a)

Однако не гарантируется, что результат имеет тип DOM_ARRAY в будущих версиях MuPAD® также. Например, внутреннее представление матриц может измениться в будущем. Используйте coerce запрашивать преобразование в конкретный тип данных:

coerce(A, DOM_ARRAY)

Вложенный list альтернативное представление для матрицы:

coerce(A, DOM_LIST)

Пример 6

Если подобъект принадлежит области без "expr" паз, затем expr возвращает FAIL:

T := newDomain("T"):
d := new(T, 1, 2);
expr(d)

Можно расширить функциональность expr к вашим собственным областям. Мы демонстрируем это для доменного T путем реализации "expr" паз, который возвращает список с внутренними операндами его аргумента:

T::expr := x -> [extop(x)]:

Если теперь expr сталкивается с подобъектом типа T во время рекурсивного процесса это вызывает стандартную программу паза T::expr с подобъектом в качестве аргумента:

expr(d), expr([d, 3])

Параметры

object

Произвольный объект

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

Элемент основной области.

Перегруженный

object

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

Функции MuPAD