Есть ли способ очистить все до начала работы в 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. Поэтому я не могу сказать, насколько хорошо это работает.