MATLAB: How to call path location in global to a function in matlab

cddirfunctionglobal

hi……i created two functions(add,sub).in sample.m file, i called this two function with below paths.
path_01 = 'C:\Users\Desktop\folder\';
path_02= 'C:\Users\Desktop\folder\add\';
.the input is a .txt file is located in path_01..to access the file,i called this path_01 file globally inside add like below,but the add() function is working here..any ides to solve this??
inside function add.m
function add()
global path_01
......
....
end

Best Answer

Global variables are only treated as global in functions that declare them "global", or in scripts that are run from such functions. When you call upon the function add() you are declaring the variable global within add(), not within the routine that called add().
You can change add.m to be a script, or you can leave add.m as a function but inside the function use
evalin('caller', 'global path_01 path_02')
If you do not change path_01 and path_02 inside of your routines, only use the values, then another way of proceeding is to make the names into functions
function p = path_01
p = 'C:\Users\Desktop\folder\';
end
then any place you use it, such as (e.g.)
cd(path_01)
or (e.g.)
fprintf('Did not find any files in directory %s\n', path_01);
then the function will be called, the string will be returned, and everything will proceed happily, no add() needed, and no global variables needed.
Related Question