Определение типов

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

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

Доменные типы

MuPAD® хранит все объекты как элементы конкретных областей. Существует два типа областей в MuPAD: основные области и области библиотеки. Система включает основные области, написанные в C++. Имена основных областей запускаются с DOM_. Например, область целых чисел DOM_INT, область рациональных чисел DOM_RAT, и область идентификаторов DOM_IDENT основные области. Большинство основных областей, доступных в MuPAD, перечислено в Основных Областях.

Система также включает области библиотеки, такие как доменный Dom::Matrix() из матриц, доменного Dom::ArithmeticalExpression из арифметических выражений, доменного Dom::Interval из интервалов с плавающей точкой и доменного stats::sample из статистических выборок. Много областей библиотеки перечислены в Областях Библиотеки. Другие области библиотеки перечислены в соответствующих библиотеках. Например, можно найти область библиотеки solvelib::BasicSet из основных бесконечных множеств под Утилитами для категории Решателя. Области библиотеки написаны в языке программирования MuPAD. Также можно создать собственные области библиотеки.

Перегрузка работает по-другому на основные области и области библиотеки. Система может перегрузить любой метод области библиотеки. Для основных областей, системные перегрузки только некоторые методы.

Типы выражения

Основной доменный DOM_EXPR включает выражения MuPAD, такие как выражения, созданные арифметическими или индексируемыми операторами, операторами и вызовами функции. MuPAD классифицирует элементы доменного DOM_EXPR далее путем определения типов выражения. Типы выражения обеспечивают более подробную информацию о конкретном выражении. Например, вы можете хотеть знать, является ли выражение арифметическим выражением, таким как сумма или продукт, Булево выражение, вызов функции или некоторый другой тип выражения. Для этих выражений, domtype функция возвращает их доменный тип DOM_EXPR:

domtype(a + b), domtype(a*b),
domtype(a and b), domtype(sin(a)),
domtype(a = b)

Чтобы найти типы выражения этих выражений, используйте type функция:

type(a + b), type(a*b),
type(a and b), type(sin(a)),
type(a = b)

Если оператор или функция имеют паз “типа”, type функция возвращает значение строки, сохраненное в том пазе. Например, паз “типа” оператора сложения содержит значение строки “_plus”, паз “типа” оператора умножения содержит “_mult”, паз “типа” синусоидальной функции содержит “sin”, и так далее.

Выражение может включать больше чем один оператор. Как правило, MuPAD сопоставляет тип выражения таких выражений с самым низким оператором приоритета. Если вы визуализируете выражение как дерево выражений, самый низкий оператор приоритета появляется в корне того дерева. Смотрите Деревья выражений Визуализации для получения дополнительной информации. Например, считайте выражение a + b*c. При выполнении этого выражения система выполняет умножение, и затем выполняет сложение. Поэтому оператор сложения является самым низким оператором приоритета в выражении. Этот оператор определяет тип выражения:

type(a + b*c)

Если самый низкий оператор приоритета в выражении не имеет паза “типа”, type функция возвращает строку “function”:

type(f(a^2 + a + 2))

domtype и type функции возвращают те же результаты для элементов большинства областей MuPAD:

domtype(5/7), type(5/7);
domtype(1.2345), type(1.2345);
domtype(a), type(a);

Если ваш код полагается при условии, что объект принадлежит конкретному доменному типу или типу выражения, проверьте что предположение прежде, чем выполнить код. Чтобы протестировать, принадлежит ли объект MuPAD конкретному типу, используйте testtype функция. Используйте эту функцию, чтобы протестировать и доменные типы и типы выражения:

testtype(a + b, DOM_EXPR), testtype(a + b, "_plus")

Для просмотра документации необходимо авторизоваться на сайте