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.
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)
Этот пример показывает тот expr
работает рекурсивно над выражениями. Все подвыражения, которые являются доменными элементами, преобразованы в выражения. Конструкция с hold(_plus)(..)
необходимо начиная с x + i(1)
оценил бы к FAIL
:
i := Dom::IntegerMod(7): hold(_plus)(x, i(1)); expr(%)
Функциональный series
возвращает элемент доменного Series::Puiseux
, который не является основной областью:
s := series(sin(x), x); domtype(s)
Используйте expr
преобразовывать результат в элемент доменного типа DOM_EXPR
:
e := expr(s); domtype(e)
Обратите внимание на то, что информация о термине порядка потеряна после преобразования.
expr
не оценивает его результат. В этом примере полиномиальный p
имеет параметр a
и глобальная переменная a
имеет значение. expr
примененный на полиномиальный p
возвращает выражение, содержащее a
. Если вы хотите вставить значение a
используйте функциональный eval
:
p := poly(a*x, [x]): a := 2: expr(p); eval(%)
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)
Если подобъект принадлежит области без "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