How to call a function with arguments containing "." in "run" function?
3 次查看(过去 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 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!