Механизм истории

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Доступ к таблице истории

MuPAD® реализует внутренний механизм истории. Механизм истории позволяет вам получить доступ к ограниченному количеству ранее вычисленных результатов, с или без команд, которые сгенерировали результаты. Механизм истории также помогает вам сократить количество дополнительных идентификаторов, обычно используемых для хранения результатов промежуточных вычислений. Вместо того, чтобы присвоить результаты таких вычислений к вспомогательным идентификаторам, можно получить доступ к записям таблицы истории и получить ранее вычисленный результат.

Чтобы получить доступ к записям таблицы истории, используйте функции history и last. Функция last возвращает ранее вычисленные результаты без команды, которая сгенерировала результаты. Функция history возвращает ранее вычисленные результаты наряду с командами, которые сгенерировали те результаты.

Для функции last MuPAD также предоставляет ярлыку %. Вызов функции last(n) (или % n) возвращает n th запись таблицы истории. Функция last считает записи таблицы истории от конца таблицы. Таким образом, когда вы используете функцию last, новым результатом является первая запись таблицы истории.

Например, вычислите факториалы чисел 10, 20, и 30:

10!; 20!; 30!;

Чтобы получить доступ к вычисленному факториалу 30, используйте вызов функции last (3) или более короткий вызов % 3:

last(3)

Примечание

Когда вы вызываете last или функцию history, MuPAD добавляет результат того вызова таблицы истории.

При вызывании функции last или ее ярлыка % вставляет новую запись в таблицу истории. Таким образом таблица истории теперь содержит результаты следующих оценок: 10!, 20!, 30!, и %3 (который в этом примере равен 10!). Если вы вызываете функцию last с аргументом 3 снова, система отображает результат оценки 20!:

last(3)

Чтобы получить доступ к новой записи таблицы истории, можно использовать ярлык % без параметров. Например, решите следующее уравнение, и затем упростите результат. Обратите внимание на то, что использование % позволяет вам постараться не присваивать результат решения идентификатора:

solve(log(2, x) + log(2, 5) = x + 5, x);

simplify(%)

Функция last не оценивает результаты. Функция last также возвращает результаты, для которых вы использовали двоеточия, чтобы подавить выходные параметры:

hold(2 + 2):
%

Функция history отображает и результат и команду, которая привела к тому результату. Эта функция считает записи таблицы истории от первого результата полученными на текущем сеансе MuPAD. Таким образом, когда вы используете функцию history, новым результатом является последняя запись таблицы истории. В этом разделе первая запись таблицы истории является вычислением факториала 10:

history(1)

Чтобы найти текущее количество записей в таблице истории, вызовите функцию history без аргумента:

history()

Можно использовать функцию history, чтобы получить доступ к новому вычислению и его результату:

a := 2:
history(history())

Для следующих операторов механизм истории зависит от того, вызываете ли вы оператор в интерактивном режиме или в рамках процедуры:

  • for, repeat и циклы while

  • if и условные операторы case

  • определения процедуры

Эти операторы называются составными операторами. На интерактивном уровне MuPAD хранит составные операторы как один модуль. В процедурах MuPAD хранит операторы, найденные в составном операторе в отдельной таблице истории процедуры. В этом случае система не хранит сам составной оператор.

Задайте максимальное количество записей

По умолчанию таблица истории для интерактивных вычислений может содержать до 20 записей. Когда количество записей достигает 20, система удаляет самую старую запись из таблицы истории каждый раз, когда это должно добавить новую запись. Для интерактивных вычислений переменная окружения HISTORY определяет максимальное количество записей в таблице истории:

HISTORY

Чтобы изменить максимальное количество записей в таблице истории для текущего сеанса MuPAD, присвойте новое значение HISTORY:

HISTORY := 2:

Теперь MuPAD хранит только две новых команды и их результаты в таблице истории:

a := 1: b := 2: c := 3:
%1, %2;
%3

Error: Invalid argument. [last]

Примечание

В рамках процедуры максимальное количество записей в локальной таблице истории процедуры всегда равняется 3, независимому от значения HISTORY.

Для дальнейших вычислений восстановите записи максимального количества по умолчанию в таблице истории:

delete HISTORY:
HISTORY

Очистите таблицу истории

Несмотря на то, что MuPAD ограничивает количество записей в таблице истории, это не ограничивает свой размер. Если команда возвращает большой результат, системные хранилища, которые приводят к таблице истории. В то время как этот результат остается в таблице истории, MuPAD не может выпустить память, должен был сохранить тот результат. Одна или несколько больших записей в таблице истории могут значительно уменьшать доступную память и замедлить дальнейшие вычисления. Если вы знаете, что конкретная команда возвращает использующие память результаты, постарайтесь не писать что команда и ее результаты к таблице истории. Чтобы постараться не писать команду и ее результат к таблице истории, установите значение HISTORY к 0. Недостаток этого подхода - то, что вы удаляете все предыдущие результаты таблицы истории.

Например, установите значение HISTORY к 0 прежде, чем создать последовательность 1 000 000 случайных чисел:

HISTORY := 0:
random() $ i = 1..10^6:

Для дальнейших вычислений восстановите записи максимального количества по умолчанию в таблице истории:

delete HISTORY:
HISTORY

Если таблица истории уже содержит использующий память результат, чтобы выпустить память также можно очистить таблицу истории путем устанавливания значения HISTORY к 0. Также можно ожидать, пока MuPAD не заполняет таблицу истории с новыми записями. Кроме того, можно выбрать Notebook > Disconnect, чтобы перезапустить механизм MuPAD.