coerce

Преобразование типов

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

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

Синтаксис

coerce(object, T)

Описание

coerce(object, T) попытки преобразовать object в элемент доменного T.

Если это не возможно или не реализованное, то FAIL возвращен.

Области обычно реализуют эти два метода "convert" и "convert_to" для задач преобразования.

coerce использование эти методы следующим образом: Это сначала вызывает T::convert(object) выполнять преобразование. Если этот вызов дает к FAIL, затем результат вызова object::dom::convert_to(object, T) возвращен, который снова может быть значением FAIL.

Узнать возможные преобразования для object или какие преобразования обеспечиваются доменным T, считайте описание метода "coerce" или "convert", соответственно, это может быть найдено на странице справки доменного T, и описание метода "convert_to" на странице справки области object.

Только немного основных областей в настоящее время реализуют методы "convert" и "convert_to".

Используйте функциональный expr преобразовывать объект в элемент основной области.

Обратите внимание на то, что часто преобразование может также быть достигнуто вызовом конструктора доменного T. Смотрите пример 3.

Примеры

Пример 1

Мы запускаем с преобразования массива в список доменного типа DOM_LIST:

a := array(1..2, 1..3, [[1, 2, 3], [4, 5, 6]])

coerce(a, DOM_LIST)

Мы преобразуем массив в hfarray из типа DOM_HFARRAY:

coerce(a, DOM_HFARRAY)

Преобразование массива в полином не реализовано, и таким образом coerce возвращает FAIL:

coerce(a, DOM_POLY)

Можно преобразовать один - или двумерный массив в матрицу, и наоборот. Пример:

A := coerce(a, matrix); domtype(A)

Преобразование матрицы в список также возможно. Результатом является затем список внутренних списков, где внутренние списки представляют строки матрицы:

coerce(A, DOM_LIST)

coerce([1, 2, 3, 2], DOM_SET)

Любой объект MuPAD® может быть преобразован в строку, такую как арифметическое выражение 2*x + sin(x^2):

coerce(2*x + sin(x^2), DOM_STRING)

Пример 2

Функциональный factor вычисляет факторизацию многочленного выражения и возвращает объект области библиотеки Factored:

f := factor(x^2 + 2*x + 1);
domtype(f)

Эта область реализует подпрограмму преобразования "convert_to", который мы можем вызвать непосредственно, чтобы преобразовать факторизацию в список (см. factor для деталей):

Factored::convert_to(f, DOM_LIST)

Однако более удобно использовать coerce, который внутренне вызывает стандартную программу паза Factored::convert_to:

coerce(f, DOM_LIST)

Пример 3

Обратите внимание на то, что часто преобразование может также быть достигнуто вызовом конструктора доменного T. Например, следующий вызов преобразует массив в матрицу доменного типа Dom::Matrix(Dom::Rational):

a := array(1..2, 1..2, [[1, 2], [3, 4]]):
MatQ := Dom::Matrix(Dom::Rational):
MatQ(a)

Вызов MatQ(a) подразумевает вызов метода "new" из доменного MatQ, который на самом деле вызывает метод "convert" из доменного MatQ преобразовывать массив в матрицу.

Здесь, то же самое может быть достигнуто с использованием coerce:

A := coerce(a, MatQ);
domtype(A)

Обратите внимание на то, что конструктор доменного T как предполагается, создает объекты, не преобразует объекты других областей в доменный тип T. Конструктор часто позволяет больше чем один аргумент, который позволяет реализовывать различные удобные для пользователя способы создать объекты (например, смотрите эти несколько возможностей для создания матриц, предлагаемых matrix).

Параметры

object

Любой объект

T

Любая область

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

Объект доменного T, или значение FAIL.

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

T

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

Функции MuPAD