Pref
:: postOutput
Действия, после того, как выведено
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
Pref::postOutput(f
)
Pref::postOutput(NIL)
Pref::postOutput()
После результата x
, скажем, команды MuPAD® распечатан на экране, f(x)
называется и выполняется, прежде чем следующая подсказка для ввода данных пользователем появляется. Это происходит для любого вывода, пока поствывод не выключен через Pref::postOutput(NIL)
.
После обычного вывода результата x
команды MuPAD возвращаемое значение f(x)
распечатано на экране с PRETTYPRINT
= FALSE
. Однако f(x)
не возвращает значения к сеансу MuPAD. К этому нельзя получить доступ через last
.
Pref::postOutput()
возвращает текущее значение поствыходной функции или NIL
, соответственно.
Pref::postOutput
, возможно в сочетании с Pref::postInput
, может использоваться, чтобы произвести информацию о статусе после каждого вывода. Можно думать об информации о таймере, использовании памяти, типы результата и т.д.
Здесь, Pref::postOutput
используется, чтобы перечислить выходную строку и отобразить тип результата. Это использует глобальную переменную LineNumber
, который должен быть инициализирован, прежде чем любой вывод производится. Определение поствыходной операции, а также инициализации глобальной переменной может быть сделано в файле “userinit.mu
”, который читается автоматически во время запуска.
Pref::postOutput( proc() begin LineNumber:= LineNumber + 1; "Out[" . expr2text(LineNumber). "]: ". "type = ".expr2text(op(map([args()], domtype))); end_proc): LineNumber:= 0:
int(x^5*exp(-x), x)
Out[1]: type = DOM_EXPR
int(x^5*exp(-x), x = 0..infinity), numeric::int(x^5*exp(-x), x = 0..infinity)
Out[2]: type = DOM_INT, DOM_FLOAT
Следующая команда print
возвращает пустой объект null()
в сеанс MuPAD. Вывод null()
подавлен:
print("print returns the void object")
Следующая команда отключена точкой с запятой, чтобы подавить вывод. Следовательно, никакой поствывод не создается, также.
x := sin(2):
Поствывод выключен:
Pref::postOutput(NIL): delete LineNumber, x:
Для любой команды время выполнения должно быть вычислено и отображено. Функция, объявленная в Pref::postInput
, устанавливает глобальное значение таймера TIME
после каждого входа. После вывода результата функция, объявленная в Pref::postInput
, сравнивает текущее время и время начала TIME
. Текущий TEXTWIDTH
используется, чтобы предварительно ожидать некоторый подходящий пробел через stringlib::format
к выравниванию по правой границе информация о таймере:
Pref::postInput(() -> (TIME:= time())): Pref::postOutput( proc() begin stringlib::format("Time: ".expr2text(time() - TIME)." msec", TEXTWIDTH-1, Right) end_proc):
int(x^10*exp(-x), x)
Time: 84.005 msec
Pref::postInput(NIL): Pref::postOutput(NIL): delete T, TIME:
Следующий поствывод перечисляет все идентификаторы со свойствами в результате последней команды MuPAD. Это извлекает indeterminates через indets
и использует property::hasprop
, чтобы запросить, есть ли у них свойства:
Pref::postOutput( proc() begin select(indets({args()}), property::hasprop); "identifiers with properties: " . expr2text(op(%)) end_proc):
assume(0 < a < b): a + b + c
identifiers with properties: a, b
Pref::postOutput(NIL): delete a, b:
|
Функция, которая будет выполняться, после того, как выведено: процедура. Значением по умолчанию этой функции является |
Ранее установите поствыходную функцию.