我正在尝试编写一个简单的函数,例如:
function [x y] = functionname (a, b, c, d, e)
所以我创建了一个名为 的 m 文件function-name.m
,其中指定了所有变量。但是,我从中调用的 m 文件functionname
不喜欢该名称,并坚持将其称为 m 文件的实际名称(即,我得到错误not enough input arguments
)。
我该如何解决这个问题?
你无法绕过它。在 MATLAB 中,您必须使用函数名称来命名文件。该文件中具有不同名称的任何函数都是私有的(对该 m 文件中的代码以外的任何代码均不可见)。
MATLAB 文档指出文件名和函数名必须相同:
将功能代码保存在带有
.m
扩展名的文本文件中。文件名应与文件中第一个函数的名称相匹配。有效的函数名称以字母字符开头,并且可以包含字母、数字或下划线。
但是,实际上重要的是文件名,而不是该文件中声明的主函数的名称。例如,如果您的文件名为func.m
,但其中的函数已定义function functionname(...)
,则您需要将其调用为func()
,而不是functionname()
。尝试一下!
在你的情况下更糟,因为文件名是“function-name.m”,所以它包含一个连字符。函数名称中不允许使用连字符(MATLAB 将它们解释为减号),因此您基本上会遇到无法调用的函数。
最重要的是,如果您不想麻烦,请按照 MATLAB 的要求进行操作,并保持文件和函数的名称相同。