Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
MuPAD® обеспечивает много предопределенных областей для большого разнообразия символьных и числовых вычислений. Система также расширяема. Если предопределенные области MuPAD не удовлетворяют ваши потребности, можно создать операции own domains и define на их элементах. Кроме того, MuPAD позволяет вам изменять существующие области библиотеки, несмотря на то, что этот подход не рекомендуется. Чтобы создать новую область, используйте функцию newDomain
. Например, создайте доменный TempF
, который представляет шкалу Температуры по Фаренгейту:
TempF := newDomain("TempF"):
В настоящее время новая область не имеет никаких элементов. Чтобы создать элемент области, используйте функцию new
. Например, создайте новый элемент x
доменного TempF
:
x := new(TempF, 15)
Чтобы проверить, что объект x
принадлежит доменному TempF
, используйте функцию testtype
. Можно также использовать функция type
или domtype
:
testtype(x, TempF), domtype(x), type(x)
Чтобы проверять внутреннее представление x
, используйте функцию extop
:
extop(x)
Предположим, что вы хотите, чтобы метод new
доменного TempF
проверял, является ли входной параметр допустимым измерением температуры. В этом случае переопределите метод new
для своего доменного TempF
:
TempF::new := t -> if testtype(t, Type::Real) then if t >= -459.67 then new(dom, t); else error("Temperature is below absolute zero."); end_if; else error("Expecting a real number above absolute zero."); end_if:
Переопределенный метод проверяет, что входной параметр является номером. Это также проверяет, что обеспеченная температура не ниже абсолютного нуля. Абсолютный нуль является нулевыми степенями в шкале температуры Келвина, которая эквивалентна-459.67 градусам по шкале Фаренгейта. Переопределенный метод создает новые элементы в градусах Фаренгейт. Вызовите метод TempF::new
непосредственно или используйте более короткий синтаксис TempF(newElement)
:
TempF::new(0), TempF(32)
Метод TempF::new
также гарантирует, что все новые элементы представляют допустимые температуры:
TempF(-500)
Error: Temperature is below absolute zero. [TempF::new]
Метод TempF::new
требует, чтобы новые элементы были вещественными числами:
TempF(x + 2)
Error: Expecting a real number above absolute zero. [TempF::new]
TempF(1 + 2*I)
Error: Expecting a real number above absolute zero. [TempF::new]
Как следующий шаг, улучшите выходной формат для элементов вашей новой области. Чтобы изменить формат что использование MuPAD для отображения элементов области, переопределите метод print
для той области. Например, при отображении элементов доменного TempF::new
, покажите измерения температуры, сопровождаемые модулями измерений (градусы по Фаренгейту):
TempF::print := proc(TempF) begin expr2text(extop(TempF, 1)).Symbol::deg."F" end_proc:
Теперь, MuPAD отображает элементы доменного TempF::new
можно следующим образом:
TempF(32), TempF(72), TempF(90), TempF(104.8)
Предположим, что вы хотите выполнить сложения для элементов новой области. По умолчанию арифметические операции обрабатывают элементы новой области как идентификаторы:
TempF(75) + TempF(10)
Можно реализовать арифметические операции для области. Например, задайте сложение для доменного TempF
. Результат сложения должен также принадлежать доменному TempF
:
TempF::_plus := proc() local elements; begin elements:= map([args()], op, 1); new(TempF, _plus(op(elements))) end_proc:
Система добавляет элементы вашей новой области тот же путь, как это добавляет числа. Система также отображает модуль градусов по Фаренгейту за получившуюся сумму:
TempF(75) + TempF(10)
Для дальнейших вычислений удалите идентификатор x
:
delete x