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 вычисляется вторым операндом функциональной среды.