【发布时间】:2013-04-09 18:52:26
【问题描述】:
给定一个文件名,我如何以编程方式区分 MATLAB 中的脚本和函数?
如果我尝试将参数传递给脚本,我会得到Attempt to execute SCRIPT somescript as a function:。有没有办法在不尝试执行的情况下检测到它?
更新:正如@craq 指出的,在这个问题发布后不久,MATLAB Central 上有一篇关于此的文章:http://blogs.mathworks.com/loren/2013/08/26/what-kind-of-matlab-file-is-this/
【问题讨论】:
-
如果您尝试将错误数量的参数传递给函数,您是否也会收到错误消息?然后,看起来您正在谈论的问题不是特定于脚本的......
-
@Ilya 不过这是一个不同的错误。我只是显示错误以指出 MATLAB 可以区分脚本和函数,因为它报告这个东西是一个脚本。不过可能是跑了才弄明白的,我不知道……
-
当发生这种情况时,它会抛出带有标识符 MATLAB:scriptNotAFunction 的异常,因此您可以通过与 matlab 相同的 try-catch 来检测这一点,但如果 try 有效,脚本将正常执行...
-
在提出这个问题后不久,MATLAB Central 上有一篇关于此问题的文章。 cmets 引用了这个问题并得出结论,@YYC 的答案更好。 (或 YYC 和 Floris 的组合。)
-
@craq 感谢您指出这一点,我不知道那篇文章。