查看: 733|回复: 1|关注: 0

[已解决] MATLAB 为什么报错“尝试将 SCRIPT xxx 作为函数执行” ?

[复制链接]

21

主题

42

帖子

0

最佳答案
  • 关注者: 2
发表于 2019-7-12 14:18:43 | 显示全部楼层 |阅读模式
MATLAB 为什么报错“尝试将 SCRIPT xxx 作为函数执行” ?

21

主题

42

帖子

0

最佳答案
  • 关注者: 2
 楼主| 发表于 2019-7-12 14:22:11 | 显示全部楼层
一般,产生此错误的原因是,有一个名为 xxx 的 MATLAB 脚本,并且调用时,使用的语法要求此脚具有输入参数或者返回值,而这些都不是脚本的属性,而是函数的属性。例如:

有一个名为“banana.m”的脚本,其中内容为:
  1. disp('banana');
复制代码

随后将其当成函数,通过以下命令,使用两个输入参数调用:
  1. banana(1,1);
复制代码

此时会报错。调用脚本的正确方法是去掉输入参数和返回值,例如:
  1. banana
复制代码

其次,错误发生可能是因为:

有一个脚本 xxx 和一个函数 xxx 都存在于路径上。如果脚本的路径具有更高优先级,则调用时将尝试使用脚本而不是函数。在 MATLAB R2006b及其之后版本中,错误消息将显示调用的脚本的位置。通过将此脚本重命名为更合适的名称,从而避免被调用到。

对于以前的版本,可以使用以下命令:
  1. which xxx
复制代码

来确定 MATLAB 是调用哪个路径下的函数或脚本。如果想要看到所有同名的文件,可以执行:
  1. which xxx -all
复制代码

最后,在某些情况下,文件名包含无效字符时,也可能会出现此类行为。

特别是,如果文件名包含 MATLAB 运算符,如 -、+或*等,则可能会看到此报错。MATLAB 文件名必须以字母开头,后跟字母、数字和下划线的任意组合。


答案来源:
https://www.mathworks.cn/matlabcentral/answers/93148-why-do-i-receive-the-error-attempt-to-execute-script-filename-as-a-function

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表