MATLAB: Check if a variable exists in the workspace, within a function

functionsworkspace

Hi,
I have a function which needs to check if a variable ('error_N') exists in the work space. If it does not exist, the function must create it.
In the following example, the function does not see the variable 'error_N' from the workspace. I tried to solve it by declaring it as a global variable. However, in the case the variable does not exist in the Workspace, Matlab creates an EMPTY variable called 'error_N' when reading "global error_N", so the function cannot create it with the value that I would like it to get.
Do you have any suggestions?
Thanks!
function output = function_example(input)
% global error_N ???????
E_1 = exist('error_N','var');
if E_1 ==1
else
error_N = 0.001;
end
output = function2(input);
error = output/N;
while error>error_N
blablabla
output....blablabla
end
end

Best Answer

if evalin('caller', 'exist(''error_N'',''var'')')
error_N = evalin('caller', 'error_N');
else
error_N = 0.001;
end
This would not be recommended. Better would be something like,
function output = function_example(x, error_N)
if ~exist('error_N', 'var') || isempty(error_N)
error_N = 0.001;
end
end
That is, the user passes error_N to you if the user wants something other than the default.