Есть ли способ очистить все, прежде чем начать в Mathematica? - PullRequest
15 голосов
/ 24 ноября 2011

В MATLAB есть функция clear для удаления всех текущих переменных.Это очень полезно, если вы начинаете что-то совершенно новое и не хотите конфликтовать с более ранними вычислениями.Сейчас я ищу что-то похожее для Mathematica, но не могу найти ничего, кроме Clear [VAR] , который удаляет только переменную VAR .

Ответы [ 3 ]

15 голосов
/ 24 ноября 2011

Вы можете использовать ClearAll, чтобы очистить переменные и их атрибуты в вашем Global контексте (по умолчанию), например так:

ClearAll["Global`*"]

Если вы работаете в другом контексте (например, в контексте конкретного ноутбука или в контексте группы ячеек), вы можете сделать

ClearAll[Evaluate[Context[] <> "*"]]

Если вы хотите удалить всех символов из ядра, чтобы Mathematica больше их не распознала, вы можете использовать Remove[], как в двух приведенных выше примерах.

Если исключить их, вы всегда можете выйти из ядра с помощью Quit[], который удалит все символы. В следующий раз, когда вы что-то оцените, будет запущено новое ядро.

14 голосов
/ 24 ноября 2011

Я рекомендую один из двух методов:

1. Сочетание клавиш для выхода из [] ядра

Существует системный файл KeyEventTranslations.tr, который можно редактировать для настройки сочетаний клавиш. Я, как и другие, добавил Ctrl + Q к Quit[] ядру, что позволяет быстро очистить все переменные сессий. Для получения дополнительной информации о настройке см.

2. Придайте новому ноутбуку уникальный контекст

В Mathematica текущий $Context определяет, к чему Context принадлежат неквалифицированные имена символов. Придав новый Блокнот уникальный контекст, что легко сделать с помощью меню Evaluation, символы, используемые в этом Блокноте, не будут сталкиваться с неквалифицированными символами в других Блокнотах. Для получения более подробной информации см. Следующий вопрос:

12 голосов
/ 24 ноября 2011

Я только что понял, что вы, возможно, не знаете, что в отличие от MATLAB, Mathematica предназначена для запуска в виде двух отдельных процессов: интерфейс - это пользовательский интерфейс, который позволяет работать с ноутбуками. Ядро выполняет вычисления. Вы можете выйти из ядра, не затрагивая интерфейс, или даже запустить более одного ядра для разных ноутбуков, или запустить ядро ​​на удаленном компьютере и использовать его с локальным интерфейсом.


Я считаю, что единственный надежный способ очистить все - это Quit ядро ​​и перезапустить его (что происходит автоматически). Существует слишком много вещей, которые можно изменить, кроме пользовательских переменных / функций (включая In / Out, загруженные пакеты, системные кэши и т. Д.). Поэтому, если вам нужен действительно новый старт, я рекомендую Quit.

Для "мягкого" сброса @yoda уже упоминала ClearAll["Global`*"]. Есть пакет << Utilities`CleanSlate`, который автоматизирует немного больше, чем этот. Вы можете прочитать документы пакета в файле AddOns\ExtraPackages\Utilities\CleanSlate.m.

Короче говоря, CleanSlate[] попытается вернуть вас в состояние ядра, когда пакет был загружен. ClearInOut[] очистит In и Out для экономии памяти.

Я не использовал этот пакет годами (за исключением функциональности ClearInOut[]), поскольку ядро ​​Mathematica быстро запускается на современных компьютерах, поэтому я просто использую Quit. Поэтому я не могу сказать вам, насколько хорошо это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...