You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: keep.m
    path of file: ./repos/malini/Codes/deconvolution - model/spm8/external/fieldtrip/utilities
    
    the code of the file until where you have to start completion: function keep(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)

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


    
function keep(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)

%       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