필터 지우기
필터 지우기

How to run multiple programs

조회 수: 20 (최근 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 CenterFile Exchange에서 Write Unit Tests에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by