MATLAB: How to write a parfor loop with nested variable

parfor loop with nested variables

I want to write a parfor loop with nested variables. First folder name goes from 0 to 80 and each of them include another folder like 1, 2 ,3…11. but there is an error like this: "Assignment to x not supported. Variable has the same name as a local function." Is there any one can help me, please?
I have a code shown in below:
basedir=pwd;
filename='Analysis_GM.tcl';
exename='OpenSees.exe';
cmd=sprintf('"%s" < "%s"', exename, filename);
x=0:10:80
parfor i=1:length(x)
x(i)
end
function x(i)
parfor j=1:11
cd(fullfile(basedir, sprintf('%d',j)));
system(cmd);
end
end

Best Answer

The error message is clear: You use "x" as a variable and a function. Simply use different names.
By the way: It is a very bad idea to use cd inside a parfor loop. Remember that the current folder is set globally, such that the different threads will compete. Better use absolute file names:
filename = 'Analysis_GM.tcl';
exename = 'OpenSees.exe';
cmd = sprintf('"%s" < "%s"', exename, filename);
parfor j=1:11
system(fullfile(basedir, sprintf('%d',j), cmd));
end