How to run m-file from another m-file by input string
7 views (last 30 days)
Show older comments
I have tried this code below trying to immediately run an m-file that was just created in another m-file :
savename = input('name : ');
f=fopen(savename,'w');
%%%writes in the created m-file
fclose(f);
run(save_name);
The above code neither produce any error or runs the script. Any comments? thanks.
Accepted Answer
Alfonso Nieto-Castanon
on 16 Jul 2014
Edited: Alfonso Nieto-Castanon
on 16 Jul 2014
try this:
...
fclose(f);
rehash;
run(save_name);
also make sure that your variable save_name does not include the extension .m, while the file that you create does include it. So that would be something like:
savename = 'test';
f = fopen([savename '.m'],'wt');
...
fclose(f);
rehash;
run(savename);
2 Comments
Alfonso Nieto-Castanon
on 16 Jul 2014
Interesting (and thanks for pointing this out)... Entering a script name with the extension .m (and without a filepath) produces an error on an old version of Matlab (R2008b), but it seems to work just fine on a more recent version (R2013a)...
More Answers (1)
David Sanchez
on 16 Jul 2014
I do that some times just by doing this:
another_script = input('script name: ','s'); % and type the name of your other script
run(another_script);
with no need of either fopen or fclose
1 Comment
Geoff Hayes
on 16 Jul 2014
Arief's code is creating a script from within another, and so needs the fopen and fclose.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!