Как удалить переменную "clear" в MATLAB
Скажем, вы какой-то новый программист, и вы делаете что-то вроде...
%...la da da
%...programming away
if such && such
clear = 1;
else
clear = 0;
end
или каким-либо другим способом вы присвойте переменной clear
значение.
Есть ли способ "очистить" clear
?
clearvars
не работает. Нажатие на переменную рабочего пространства и ручное нажатие на удаление работает, но я думаю, что он обманывает.
Ответы
Ответ 1
Это будет сделано:
builtin('clear','clear')
Примечание: Имейте в виду, чтобы избежать таких операций, чтобы сохранить четкость кода. Только переписывайте, когда это точное действие, которое вы хотите выполнить. В противном случае это может привести к ошибкам в будущем, если вы забыли (или если другой человек использует ваш код и не понимает этого), что у вас есть явная (или любая другая) функция, перезаписанная. Вы можете легко назвать эту переменную как doClear
, например.
Ответ 2
Любое имя, даже builtin
и feval
может быть переопределено. В этом случае вы можете использовать функцию handles вместо того, чтобы заставить MALTAB интерпретировать инструкцию как вызов функции:
clear = str2func('clear');
clear('clear')
Очевидно, что str2func
также может быть перегружен!:) Однако существует аналогичное решение (вдохновленное статья Лорена), которая создает отдельный m файл, который делает то же самое:
function clearclear()
assignin('caller', 'clear', @clear);
Вызов этой функции в основной рабочей области должен позволить вам безопасно сделать clear('clear')
.
Второе решение использует тот факт, что m файл не "видит" переменную clear
в основной рабочей области и поэтому может обращаться к фактическому дескриптору функции clear
должным образом.
Ответ 3
Неинтуитивным способом является
clear = rand(1000,500,700);
pack
Это вызывает следующее предупреждение:
Предупреждение: переменная "clear" не может быть сохранена в MAT файле, версия которого старше 7.3. Чтобы сохранить эту переменную, используйте переключатель -v7.3. Пропустив...
Он также страдает от той же проблемы, что вы можете назначить pack
переменной.
Ответ 4
Интересная проблема! Мне было на удивление трудно найти способы сделать это программно (помимо того, что было предложено @TryHard)
Вот что я придумал, хотя он немного более мощный, чем clear
:
!matlab &
exit
Обратите внимание, что если вы хотите ввести это в командной строке сразу, вам нужно использовать shift + enter между ними.