function value = defaultValue(varname, a_defaultvalue)

% defaultValue - If variable unset (either nonexistent or empty), assign it
% a default value. Otherwise the variable remains unchanged.
%
% Usage:
%   var = defaultValue(varname, a_defaultvalue)
%
% Description:
%   If the variable has already been defined, it keeps unchanged. If the
% variable doesn't exist or is an empty matrix, it will be assigned a
% default value to it.
%
% Parameters: 
%   varname: a string. the name of the variable.
%   a_defaultvalue: value for the variable.
% 
% Example:
%   SamplingRate = defaultValue('SamplingRate', 10);
%
% Author: Li, Su

% Modified: Cengiz Gunay, 2008/04/11 - naturalized name and documentation
% for Pandora.

if evalin('caller', ['~exist(''' varname ''',''var'') || isempty(' varname ')'])
    value=a_defaultvalue;
else
    value=evalin('caller', varname);
end