%, last

Доступ к ранее вычисленному объекту

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

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

Синтаксис

%
% n
last(n)

Описание

last() или % возвращает результат последней команды.

last(n) или %n возвращает результат nth предыдущая команда.

По умолчанию MuPAD® хранит последние 20 команд и их результаты во внутренней таблице истории. last(n) возвращает запись результата nэлемент th в этой таблице, считаемой от конца таблицы. Таким образом last(1) возвращает результат последней команды, last(2) возвращает результат рядом с в последний раз один, и т.д. Вместо last(n) можно также записать более кратко %n. Вместо last(1) или %1, можно использовать еще более кратко %.

Переменная окружения HISTORY определяет количество предыдущих результатов, к которым можно получить доступ на интерактивном уровне, т.е. количестве записей в таблице истории. В процедурах длина этой таблицы всегда равняется 3, независимому от значения HISTORY. Таким образом допустимые значения для n целые числа между 1 и HISTORY на интерактивном уровне и целых числах 1, 2, 3 в процедуре.

Используйте history к записям доступа таблицы истории на интерактивном уровне непосредственно, включая команду, которая привела к соответствующему результату.

Результат возвращен last или % не оценен снова. Используйте функциональный eval обеспечивать последующую оценку. Смотрите Пример 4.

Примечание

last ведет себя по-другому на интерактивном уровне и в процедурах. На интерактивном уровне, составных операторах, таких как forповторение, и while циклы и if и case команды ветвления, хранятся в таблице истории в целом. В процедурах операторы в составном операторе хранятся в отдельной таблице истории этой процедуры, но не самом составном операторе. Смотрите Пример 5.

Команды и их результаты хранятся в таблице истории, даже если выход подавлен двоеточием. Таким образом результат last(n) может отличаться от nпредыдущий выход th, который отображается на экране на интерактивном уровне. Смотрите Пример 1.

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

Команды, которые читаются из файла через fread или read хранятся в таблице истории перед fread или read сама команда. Если опция Plain используется, затем отдельная таблица истории допустима в файле, и команды из файла не появляются в таблице истории контекста включения. Смотрите страницу справки history для примеров.

Используя last в процедурах обычно рассматривается плохим стилем программирования и поэтому удерживается от использования. Будущие релизы MuPAD больше не могут поддерживать использование last в рамках процедур.

Если сокращенный синтаксис %n используется, затем n должно быть положительное целое число буквально. Если дело обстоит не так, но n оценивает к положительному целому числу, используйте эквивалентное функциональное обозначение last(n) (см. Пример 3).

Примеры

Пример 1

Вот некоторые примеры для использования last на интерактивном уровне. Обратите внимание на то, что last(n) относится к nth ранее вычислил результат, было ли это отображено или нет:

a := 42;
last(1), %, %1

a := 34: b := 56: last(2) = %2

Пример 2

Команды, появляющиеся на одной входной линии, ведут, чтобы разделить записи в таблице истории:

"First command"; 11: 22; 33:

last(1), last(2);

Если последовательность команд заключается в скобки, она рассматривается как одна команда:

"First command"; (11: 22; 33:)

last(1), last(2);

Последовательность выражения также рассматривается как одна команда:

"First command"; 11, 22, 33;

last(1), last(2);

Пример 3

Вследствие того, что синтаксический анализатор MuPAD ожидает номер после % подпишитесь, существует различие между использованием % и last. last может быть вызван выражением, которое оценивает к положительному целому числу:

n := 2: a := 35: b := 56: last(n)

Если вы пробуете то же самое %, ошибка происходит:

n := 2: a := 35: b := 56: %n
Error: Unexpected 'identifier'. [line 1, col 28]

Пример 4

Результат last не оценен снова:

delete a, b:
c := a + b + a: a:= b: %2

Используйте eval осуществлять оценку:

eval(%)

Пример 5

Мы демонстрируем различие между использованием last на интерактивном уровне и в процедурах:

1: for i from 1 to 3 do i: print(%): end_for:

Здесь last(1) относится к новой записи в таблице истории, которая является 1 выполняемый перед for цикл. Мы можем также проверить это путем осмотра таблицы истории после этих команд. Команда history возвращает список с двумя элементами. Первая запись является ранее вводимой командой MuPAD, и вторая запись является результатом этой команды, возвращенной MuPAD. Вы видите, что таблица истории содержит целый for цикл как одна команда:

history(history() - 1), history(history())
[1, 1], [(for i from 1 to 3 do
  i;
  print(%)
end_for), null()]

Однако, если for цикл, заданный выше, выполняется в процедуре, затем мы получаем различный результат. В следующем примере, last(1) относится к последнему выполненному выражению, а именно, i в цикле:

f := proc()
begin
  1: for i from 1 to 3 do i: print(last(1)): end_for
end_proc:
f():

Команда history относится только к интерактивным входным параметрам и их результатам:

history(history())

Параметры

n

Положительное целое число

Возвращаемые значения

Объект MuPAD.

Смотрите также

Функции MuPAD

Для просмотра документации необходимо авторизоваться на сайте