How to call a function with arguments containing "." in "run" function?
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Lets say I am trying to call a function called printVersion() using run.
Here is printVersion()
function printVersion(version)
disp(version)
end
Now, if version number doesn't contain decimal, it works fine.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1710231/image.png)
But, If version number has decimal, it trys to find the whole string as a script.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1710236/image.png)
Thank you.
1 Commento
Stephen23
il 7 Giu 2024
Modificato: Stephen23
il 7 Giu 2024
"How to call a function with arguments containing "." in "run" function?"
Don't do this: RUN is only documented for scripts, not functions. Any other undocumented behavior RUN might have is liable to change or be unpredictable. Use function handles and avoid meta-programming in code.
Risposta accettata
Matlab Pro
il 6 Giu 2024
You are correct: Matlab tries to look for a program with this name.
A simple solution to overcome this issue is by doing an 'eval' command ahead and sending this eval var to the function
eval('a="Version1.1";');run('printVersion(a)')
function printVersion(version)
disp(version)
end
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Get Started with MATLAB in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!