How to run a matlab code for all folders in a directory?

22 views (last 30 days)
I have one directory with many folders. Each folder contains a .txt file (eg, file1 contain number1.txt, file2 contain number2.txt etc). these files has 4 columns with double numbers.
Also I have, outside of this directories one matlab code that reads the .txt file, makes calculations and write a file with the results.
Is there a way to run tha matlab code for all the folders with automated manner? I mean to run the code with an easy way, and not running the matlab code one by one for each folder?

Answers (2)

Stephen23
Stephen23 on 23 Apr 2021
Edited: Stephen23 on 23 Apr 2021
"Is there a way to run tha matlab code for all the folders with automated manner? "
Of course, just use DIR. For example:
P = 'absolute/relative path to the main folder';
S = dir(fullfile(P,'**','number*.txt'));
for k = 1:numel(S)
F = fullfile(S(k).folder,S(k).name)
yourfunction(F)
end
  17 Comments
Ivan Mich
Ivan Mich on 2 May 2021
After the corrections you mentioned command window shows me:
Error in mycodetest (line 4)
[d1,tex]= importdata(filename);
Error in Untitled (line 9)
mycodetest(D) % so you still need to handle the filenames here.
Caused by:
Error using fread
Invalid file identifier. Use fopen to generate a valid file identifier.
How can I solve it?
Stephen23
Stephen23 on 2 May 2021
Edited: Stephen23 on 5 May 2021
The most common cause of that error is the user supplying a filename that does not exist. The most common reasons for it not existing are 1) spelling mistakes and 2) an incorrect path.
Most likely you have not provided the complete filename (including the required absolute/relative filepath). You can check this yourself by printing the filename (or even better: using the debugging tools) of the file that you are trying to open.
Note that you will need to use FULLFILE to join the base filepath, the subdirectory name, and the filename. I suspect that you have forgotten to include the filename.
If you want further help with this then:
  • show the complete error message . This means all of the red text.
  • show the code that you are currently using.
  • show the complete filename that you are supplying to whatever function that imports the file data.

Sign in to comment.


Attaullah Shafiq
Attaullah Shafiq on 1 May 2021
yes you can use dir function. plz visit dir func help

Categories

Find more on File Operations in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!