How to automatically run all matlab files in a folder

If there are many matlab edits in my folder, is there any command in matlab that can automatically read the edit in the folder and run it?

1 Comment

What do you mean? Do you want to locate any m-files that have been edited since some previous time? And then run those m-files or find the lines in the file that are different from some earlier reference version of the file? You know that dir can give you the time date stamp of the files, right?

Sign in to comment.

Answers (1)

something like this should work
folder = 'YourFolder';
mfiles = dir(fullfile(folder, '*.m'));
% loop over the files
for k = 1:length(mfiles)
file = mfiles(k).name;
try
% try to run the current m file
run(fullfile(folder, file));
fprintf('succesful run: %s\n', file);
catch
% print message if it failed
fprintf('failed to run: %s\n', file);
end
end

4 Comments

great!
But I found that each malab file has a clear all command. If it is not cleared, the program will run incorrectly due to the variable naming. Can you think of a way to avoid it? Because if there is clear all, this group of codes will fail to run
Indeed, if some (or even all) of the routines have a "clear all" then it won't work.
"Can you think of a way to avoid it?"
By writing more robust code (i.e. functions and not scripts, not calling anti-pattern CLEAR ALL anywhere, etc.)
So when I write the code, it should be written as funtion to test the cases of various situations, isn't it using script for testing?

Sign in to comment.

Categories

Asked:

on 12 Nov 2022

Commented:

on 14 Nov 2022

Community Treasure Hunt

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

Start Hunting!