How to run multiple programs

23 ビュー (過去 30 日間)
dav
dav 2014 年 10 月 23 日
コメント済み: dav 2014 年 10 月 25 日
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

採用された回答

José-Luis
José-Luis 2014 年 10 月 23 日
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 件のコメント
dav
dav 2014 年 10 月 23 日
編集済み: dav 2014 年 10 月 23 日
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 2014 年 10 月 24 日
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.

サインインしてコメントする。

その他の回答 (1 件)

Geoff Hayes
Geoff Hayes 2014 年 10 月 23 日
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 件のコメント
Geoff Hayes
Geoff Hayes 2014 年 10 月 24 日
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 2014 年 10 月 25 日
Thanks a lot.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeWrite Unit Tests についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by