Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
42 lines (39 sloc) 1.14 KB
function defval(name,value)
% DEFVAL(name,value)
%
% Assigns a default value to the named variable
%
% INPUT:
%
% name A string, enclosed in single quotes, with a variable name
% value The value, whatever it is, that you want the variable to have
%
% OUTPUT:
%
% None. The variables appear as if by magic into your workspace or
% will be available inside your function.
%
% NOTE:
%
% This won't work for an unassigned structure variable.
%
% Last modified by ebrevdo-at-alumni-princeton.edu, 05/28/2011
% Last modified by fjsimons-at-alum.mit.edu, 12/20/2012
%
% It appears that defval('bla',functioncall) evaluates the function call
% regardless of whether or not 'bla' has been assigned.
if ~ischar(name),
error(sprintf(['The first argument of DEFVAL ',...
'has to be a string with a variable name']));
end
% Always do it is our default here
si=1;
% If it exists... as a variable (say it, it makes it faster!)
if evalin('caller',[ 'exist(''' name ''',''var'')']);
% ... and it's empty, do it; but don't do it if it's non empty
si=evalin('caller',[ 'isempty(' name ')']);
end
% Do it or not
if si
assignin('caller',name,value);
end