function clear_except(varargin) %CLEAR_EXCEPT Clears all variables except those specified. % Doesn't support regex or globs. % % Arguments: % varargin variables to NOT clear % % Authors: % Joshua V. Dillon; Dec. 11, 2006; jvdillon AAT purdue DDOT edu %if length(varargin)==1 & strcmp(varargin{1},'none') % evalin('caller','clear all'); % return; %end vars = evalin('caller','who'); %for i=1:nargin % %vars = vars(find(~strcmp(varargin{i},vars))); % regxcell = regexp(vars,['^' varargin{i} '$'],'start'); % %regexarr = cellfun(@(x)(numel(x)>0 && x(1)==1),regxcell); % regexarr = cellfun(@length,regxcell); % vars = vars(find(~regexarr)); %end vars = setdiff(vars,varargin); if length(vars)==0 return; end % append a space to each string then flatten vars = strcat(vars,{repmat([' '],1,length(vars))}); vars = [vars{:}]; evalin('caller',['clear ', vars]);