0001 function keep(varargin);
0002
0003
0004
0005
0006
0007
0008
0009
0010 if isempty(varargin)
0011 return
0012 end
0013
0014
0015
0016 wh = evalin('caller','who');
0017
0018
0019
0020 if isempty(wh)
0021 error(' There is nothing to keep!')
0022 end
0023
0024
0025
0026 variable = [];
0027 for i = 1:length(wh)
0028 variable = [variable,':',wh{i}];
0029 end
0030 variable = [variable,':'];
0031
0032
0033
0034 flag = 0;
0035 for i = 1:length(varargin)
0036 I = findstr(variable,[':',varargin{i},':']);
0037 if isempty(I)
0038 disp([' ',varargin{i}, ' does not exist!'])
0039 flag = 1;
0040 elseif I == 1
0041 variable = variable(1+length(varargin{i})+1:length(variable));
0042 elseif I+length(varargin{i})+1 == length(variable)
0043 variable = variable(1:I);
0044 else
0045 variable = [variable(1:I),variable(I+length(varargin{i})+2:length(variable))];
0046 end
0047 end
0048
0049
0050
0051 if flag == 1
0052 disp(' No variables are deleted!')
0053 return
0054 end
0055
0056
0057
0058 I = findstr(variable,':');
0059 if length(I) ~= 1
0060 for i = 1:length(I)-1
0061 if i ~= length(I)-1
0062 del(i) = {[variable(I(i)+1:I(i+1)-1),' ']};
0063 else
0064 del(i) = {variable(I(i)+1:length(variable)-1)};
0065 end
0066 end
0067 evalin('caller',['clear ',del{:}])
0068 end