expr2text
Преобразуйте объекты в символьные строки
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
expr2text(object
)
expr2text(object)
преобразовывает object
в символьную строку. Результат обычно соответствует экрану вывод object
, когда PRETTYPRINT
установлен в FALSE
.
Если функция вызвана без аргументов, то пустая строка символов создается. Если больше чем один аргумент дан, аргументы интерпретированы как последовательность выражения и преобразованы в односимвольную строку.
Как большая часть другой функции MuPAD®, expr2text
оценивает свои аргументы перед преобразованием.
Если строки произойдут в object
, они будут заключены в кавычки в результате.
Выражения преобразованы в символьные строки:
expr2text(a + b)
expr2text
заключает строки в кавычки. Обратите внимание на то, что кавычкам предшествует наклонная черта влево, когда они распечатаны на экране:
expr2text(["text", 2])
Если больше чем один аргумент дан, аргументы обработаны как последовательность отдельного выражения:
expr2text(a, b, c)
Если никакой аргумент не дан, пустая строка сгенерирована:
expr2text()
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)
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)
|
Любой объект 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
вычисляется вторым операндом функциональной среды.