expr2text

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

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

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

Синтаксис

expr2text(object)

Описание

expr2text(object) преобразовывает object в символьную строку. Результат обычно соответствует экрану вывод object, когда PRETTYPRINT установлен в FALSE.

Если функция вызвана без аргументов, то пустая строка символов создается. Если больше чем один аргумент дан, аргументы интерпретированы как последовательность выражения и преобразованы в односимвольную строку.

Как большая часть другой функции MuPAD®, expr2text оценивает свои аргументы перед преобразованием.

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

Примеры

Пример 1

Выражения преобразованы в символьные строки:

expr2text(a + b)

expr2text заключает строки в кавычки. Обратите внимание на то, что кавычкам предшествует наклонная черта влево, когда они распечатаны на экране:

expr2text(["text", 2])

Пример 2

Если больше чем один аргумент дан, аргументы обработаны как последовательность отдельного выражения:

expr2text(a, b, c)

Если никакой аргумент не дан, пустая строка сгенерирована:

expr2text()

Пример 3

expr2text оценивает свои аргументы:

a := b: c := d: expr2text(a, c)

Используйте hold, чтобы предотвратить оценку:

expr2text(hold(a, c));
delete a, c:

Вот другой пример:

expr2text((a := b; c := d));
delete a, c:

e := expr2text(hold((a := b; c := d)))

Последняя строка содержит символ новой строки “\\n”. Используйте print с опцией Unquoted, чтобы расширить это в новую строку:

print(Unquoted, e):
(a := b;
c := d)

Пример 4

expr2text является сверхзагружаемым. Это использует вывод по умолчанию для элементов области, если область не имеет ни слота "print", ни слота "expr2text":

T := newDomain("T"): e := new(T, 1):
e;
print(e):
expr2text(e)

Если слот "print" будет существовать, он будет вызван expr2text, чтобы сгенерировать вывод:

T::print := proc(x) begin
  _concat("foo: ", expr2text(extop(x)))
end_proc:
e;
print(e):
expr2text(e)

Если вы хотите, чтобы expr2text сгенерировал вывод, отличающийся от обычного вывода, сгенерированного print, можно предоставить метод "expr2text":

T::expr2text := proc(x) begin
  _concat("bar: ", expr2text(extop(x)))
end_proc:
e;
print(e):
expr2text(e)

Параметры

object

Любой объект MuPAD

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

строка.

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

object

Алгоритмы

При обработке доменного элемента e expr2text сначала пытается вызвать метод "expr2text" соответствующего доменного T. Если это существует, T::expr2text(e) называется, и результат возвращен. Если никакой метод "expr2text" не существует, expr2text пытается вызвать метод "print" таким же образом. Если никакой метод "print" не будет существовать также, expr2text сгенерирует вывод по умолчанию. Cf. Пример 4.

Метод "expr2text" или метод "print" могут возвратить произвольный объект MuPAD, который будет обработан рекурсивно expr2text.

Примечание

Возвращенный объект не должен содержать доменный элемент e как подобъект. В противном случае ядро MuPAD сталкивается с бесконечной рекурсией и испускает сообщение об ошибке.

Для выражений результат, возвращенный expr2text всегда, совпадает с выводом, произведенным print. Если 0th операнд выражения является функциональной средой, результат expr2text вычисляется вторым операндом функциональной среды.

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

Функции MuPAD