No BSD License  

Highlights from
KEEP3

from KEEP3 by Martin Barugel
Keeps the specified variables and clears the rest. Allows the use of the wildcard *...

keep3(varargin)
%KEEP clears all the variables in the workspace except the ones you specify
%after the keep command. It works just like clear, but only for variables
%
%KEEP is a modified version of the KEEP M-file written by 
%Xiaoning (David) Yang (1998). It allows the use of the wildcard * as in the
%clear command
%
%Examples:
% keep set1data set2data set3data
% keep *data
%
%Martin Barugel (mbarugel@utdt.edu)


function keep3(varargin)

%       Keep all
if isempty(varargin) | sum(strcmp('*',varargin))>=1
        return
end

%       See what are in caller workspace
wh = evalin('caller','who');

del=' ';
for i=1:length(wh)
    del=[del wh{i} '  '];
end
        
%       Check workspace variables
if isempty(wh)
        error('  There is nothing to keep!')
end

%       Create string of variables to be cleared
for i=1:length(varargin)
    name=varargin{i};
    name=strrep(name,'*','\w*');
    [s,f]=regexp(del,['\s' name '\s']);
    for j=1:length(s)
        del(s(j):f(j))=char(32*ones(1,f(j)-s(j)+1));
    end
end

%       Clear them
if length(del)==sum(isspace(del))
    return
else
    evalin('caller',['clear ' del]);
end

Contact us at files@mathworks.com