Есть ли способ очистить все до начала работы в Mathematica?
В MATLAB существует функция, позволяющая удалить все текущие переменные. Это очень полезно, если вы начинаете что-то совершенно новое и не хотите создавать конфликты с более ранними вычислениями. Сейчас я ищу что-то похожее для Mathematica, но ничего не нашел, кроме Clear [VAR], который удаляет только переменную VAR.
Ответы
Ответ 1
Я рекомендую один из двух способов:
1. Ярлык клавиатуры для выхода из [] ядра
Существует системный файл KeyEventTranslations.tr
, который вы можете редактировать для настройки сочетаний клавиш. Я, как и другие, добавил Ctrl + Q в Quit[]
ядро, что позволяет быстро очистить все переменные сеанса. Для получения дополнительной информации об установке этого параметра см.:
2. Дайте новому ноутбуку уникальный контекст
В Mathematica текущий $Context
определяет, к какому Context относятся неквалифицированные имена символов. Предоставляя новому Notebook уникальный Контекст, который легко делается через меню Evaluation
, символы, используемые в этом Ноутбуке, не будут сталкиваться с неквалифицированными символами в других Ноутбуках. Для получения более подробной информации см. Следующий вопрос:
Ответ 2
Вы можете использовать ClearAll
, чтобы очистить переменные и их атрибуты в контексте Global
(по умолчанию) следующим образом:
ClearAll["Global`*"]
Если вы работаете в другом контексте (например, конкретном конкретном контенте или конкретном контексте группы), вы можете сделать
ClearAll[Evaluate[Context[] <> "*"]]
Если вы хотите удалить все символы из ядра, чтобы Mathematica больше их не распознавала, вы можете использовать Remove[]
аналогично двум приведенным выше примерам.
Если это запрещено, вы всегда можете выйти из ядра с помощью Quit[]
, который удалит все символы. В следующий раз, когда вы что-то оцениваете, будет запущено новое ядро.
Ответ 3
Я просто понял, что вы, возможно, не знаете, что в отличие от MATLAB, Mathematica предназначен для работы как два отдельных процесса: Front End - это пользовательский интерфейс и позволяет работать с ноутбуками. Ядро выполняет вычисления. Вы можете выйти из ядра, не затрагивая интерфейс, или даже запустить более одного ядра для разных ноутбуков, или запустить ядро на удаленном компьютере и использовать его с локальным интерфейсом.
Я считаю, что единственным надежным способом очистки всего является Quit
ядро и перезапустить его (что автоматически). Есть слишком много вещей, которые могут быть изменены отдельно от пользовательских переменных/функций (включая In
/Out
, загруженные пакеты, системные кеши и т.д.). Поэтому, если вам нужен действительно свежий старт, я рекомендую Quit
.
Для "мягкого" reset, уже упомянутого @yoda ClearAll["Global`*"]
. Там пакет << Utilities`CleanSlate`
, который автоматизирует немного больше, чем это. Вы можете прочитать документы пакета внутри файла AddOns\ExtraPackages\Utilities\CleanSlate.m
.
Короче говоря, CleanSlate[]
попытается вернуть вас в состояние ядра при загрузке пакета. ClearInOut[]
очистит In
и Out
, чтобы сохранить память.
Я не использовал этот пакет за многие годы (за исключением функциональности ClearInOut[]
), так как ядро Mathematica запускается быстро на современных компьютерах, поэтому я просто использую Quit
. Поэтому я не могу сказать, насколько хорошо это работает.