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
сгенерирует выход по умолчанию. См. Пример 4.
"expr2text"
метод или "print"
метод может возвратить произвольный объект MuPAD, который будет обработан рекурсивно expr2text
.
Возвращенный объект не должен содержать доменный элемент e
как подобъект. В противном случае ядро MuPAD сталкивается с бесконечной рекурсией и испускает сообщение об ошибке.
Для выражений, результат, возвращенный expr2text
всегда совпадает с выходом, произведенным print
. Если 0th операнд выражения является функциональной средой, результатом expr2text
вычисляется вторым операндом функциональной среды.