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:
|
Функция, которая будет выполняться, после того, как выведено: процедура. Значением по умолчанию этой функции является |
Ранее установите поствыходную функцию.