How to call a function with arguments containing "." in "run" function?
4 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Stephen23
2024 年 6 月 7 日
編集済み: Stephen23
2024 年 6 月 7 日
"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.
採用された回答
Matlab Pro
2024 年 6 月 6 日
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
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Get Started with MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!