Pref
:: postInput
Действия, после того, как введено
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
Pref::postInput(f
)
Pref::postInput(NIL)
Pref::postInput()
Pref::postInput
позволяет действиям пользователя аппарата непосредственно, после того, как введено.
После ввода любой команды MuPAD® x
, скажем, и отправка этой команды к ядру, называется f(x)
, прежде чем ядро начинает обрабатывать вход. Это происходит для любого входа, пока поствход не выключен через вызов Pref::postInput(NIL)
.
Функциональный f
неявно использует option hold
, т.е. f
видит входную команду, как вводится и проанализировано без любой оценки.
f
не может изменить входную команду, которая отправляется в ядро для оценки. Однако f
может сохранить вход в некоторой глобальной переменной для дальнейшей обработки, или некоторые другие действия могут быть выполнены.
Pref::postInput()
возвращает текущее значение постфункции ввода или NIL
, соответственно.
Pref::postInput
, возможно в сочетании с Pref::postOutput
, полезен для инициализации переменных, чтобы вычислить информацию о статусе, такую как время выполнения для команды, которая должна быть выполнена. Смотрите Пример 2.
Постфункция ввода видит вход, как вводится, т.е. перед оценкой ядром:
Pref::postInput(proc() begin print(Unquoted, "input" = args()) end):
1 + 2
input = 1 + 2
1 + 2, x = sin(0.1)
input = (1 + 2, x = sin(0.1))
x := 1234; y := 5678
input = (x := 1234)
input = (y := 5678)
Поствход выключен. Эта команда вызывает постфункцию ввода в течение самого последнего времени:
Pref::postInput(NIL):
input = Pref::postInput(NIL)
delete x, y:
Для любой команды время выполнения должно быть вычислено и отображено. Функция, объявленная в Pref::postInput
, устанавливает глобальное значение таймера TIME
после каждого входа. После вывода результата функция, объявленная в Pref::postOutput
, сравнивает текущее время и время начала TIME
.
Pref::postInput(() -> (TIME:= time())): Pref::postOutput(() -> "Time: ".expr2text((time() - TIME)*msec)):
int(cos(x)*exp(sin(x)), x)
Time: 40 msec
Time: 40 msec
Pref::postInput(NIL): Pref::postOutput(NIL): delete TIME:
Как другой пример использования Pref::postInput
для того, чтобы хранить информацию, чтобы влиять на вывод, мы комбинируем его с Pref::output
, чтобы включать (представленная версия) вход и результат:
Pref::postInput(() -> (LASTINPUT := args())): Pref::output(() -> val(LASTINPUT) = args()):
Это делает вход “записи MuPAD = результат” на экран при оставлении истории (доступной %
) неповрежденный:
int(x, x); sum((-1)^i/(2*i+1), i=0..infinity); sin(%)
|
Функция, которая будет выполняться, после того, как введено: процедура. Значением по умолчанию этой функции является |
Ранее установите постфункцию ввода.