How to run multiple programs

23 visualizaciones (últimos 30 días)
dav
dav el 23 de Oct. de 2014
Comentada: dav el 25 de Oct. de 2014
Hi,
Anybody know a code to run (say) 3 programs one after another without having to give a command to run each program please?
What I want is something like the following
for i=1:3
test(i).m;
end
Thanks

Respuesta aceptada

José-Luis
José-Luis el 23 de Oct. de 2014
Just put in an .m file (script):
test1; %you don't even need the .m here
test2;
test3;
And your three programs will run consecutively, provided they are in the path or the current folder.
  6 comentarios
dav
dav el 23 de Oct. de 2014
Editada: dav el 23 de Oct. de 2014
I am sorry may be it wasn't clear I named the following code "okkoma"
your_string = 'test';
for ii = 1:2
current_prog = [your_string num2str(ii)];
run(current_prog)
end
But the programs run by the code "okkoma" are named test1, test2...
Is that wrong?
When I did the proposed change I got
Error using run (line 55)
okkoma1 not found.
Error in okkoma (line 5)
run(current_prog)
Thanks much
Geoff Hayes
Geoff Hayes el 24 de Oct. de 2014
dav - so your main script is named okkoma.m and you want to run the two (or more) scripts named test1,test,etc.
Then, the code within the okkoma.m should be what José-Luis proposed earlier
your_string = 'test';
for ii = 1:2
current_prog = [your_string num2str(ii)];
run(current_prog)
end
which will call run on the scripts test1, test2, etc.

Iniciar sesión para comentar.

Más respuestas (1)

Geoff Hayes
Geoff Hayes el 23 de Oct. de 2014
Dav - it seems that you could use the run command to do this. If test is a cell array of strings with each string corresponding to a "program" (script or function with no arguments), then try
test = {'whos','what'};
for k=1:length(test)
run(char(test{k}));
end
If you run the above, the first command (whos) will list all variables in the workspace, and the second command (what) will list the MATLAB files in the folder.
  3 comentarios
Geoff Hayes
Geoff Hayes el 24 de Oct. de 2014
dav - it wasn't clear from your question what the names of are your scripts were. So in the above example, I created an array of strings where each string corresponded to a script. In this case, I used the built-in MATLAB functions whos and what. length is used to determine how many programs/scripts should be run (since the length(test) is two), and then we call run on each element of test. This could easily have been set to
test = {'test1', 'test2', 'test3'};
dav
dav el 25 de Oct. de 2014
Thanks a lot.

Iniciar sesión para comentar.

Categorías

Más información sobre Write Unit Tests en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by