execute a function in several directories

how do I execute scritp.m function in different directories without having to navigate to each individual directory and run the script there?

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 8 Nov. 2011

0 Stimmen

DIRNAMES = {'uline','cool','crinkle','organic', 'mingus'}; %change appropriately
initialdir = pwd();
for dirname = DIRNAMES
cd(dirname);
scritp %the script to run
cd(initialdir)
end
The changing back to the initial dir is important if the directory names are in relative path format as in the example values I give.

5 Kommentare

Daniel Shub
Daniel Shub am 8 Nov. 2011
I think you need to add initialdir to the path so that script (scritp) can be found after you change the directory.
Baba
Baba am 8 Nov. 2011
I'm getting the following error when running your code:
Argument must contain a string.
Error in ==> Master at 5'
cd(dirname);
Walter Roberson
Walter Roberson am 8 Nov. 2011
Oh, right, should be
cd(dirname{1})
Baba
Baba am 8 Nov. 2011
also, the DIRNAMES, do I have to include the full directory starting with the Drive letter?
Walter Roberson
Walter Roberson am 8 Nov. 2011
Please expand the comments here to see Daniel's explanation of how to have the script be found.
For the DIRNAMES, you can either use full pathnames complete with drive letter, or you can use pathnames that are relative to the directory that you will be starting the script in.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by