Function 函数和函数名错误

Function 函数和函数名错误,function,matlab,Function,Matlab,我正在尝试编写一个简单的函数,例如: 因此,我创建了一个名为function name.m的m文件,其中指定了所有变量。但是,我从中调用的m文件functionname不喜欢该名称,并坚持将其称为m文件的实际名称(即,我得到的错误是没有足够的输入参数) 我该怎么避开这件事呢?你绕不开它。在MATLAB中,必须使用函数名命名文件。该文件中具有不同名称的任何函数都是私有的(除该m文件中的代码外,任何代码都不可见)。说明文件和函数的名称必须相同: 将功能代码保存在扩展名为.m的文本文件中。文件名应与文

我正在尝试编写一个简单的函数,例如:

因此,我创建了一个名为
function name.m
的m文件,其中指定了所有变量。但是,我从中调用的m文件
functionname
不喜欢该名称,并坚持将其称为m文件的实际名称(即,我得到的错误是
没有足够的输入参数


我该怎么避开这件事呢?

你绕不开它。在MATLAB中,必须使用函数名命名文件。该文件中具有不同名称的任何函数都是私有的(除该m文件中的代码外,任何代码都不可见)。

说明文件和函数的名称必须相同:

将功能代码保存在扩展名为
.m
的文本文件中。文件名应与文件中第一个函数的名称匹配。有效的函数名以字母开头,可以包含字母、数字或下划线

但是,实际上重要的是文件名,而不是该文件中声明的主函数名。例如,如果文件名为
func.m
,但其中的函数定义为
function function name(…)
,则需要将其作为
func()
调用,而不是
functionname()
。试试看

在您的例子中,情况更糟,因为文件名是“function name.m”,所以它包含一个连字符。函数名中不允许使用连字符(MATLAB将其解释为减号),因此您基本上只能使用无法调用的函数


底线是,如果您不想惹麻烦,请按照MATLAB的要求操作,并保持文件和函数的名称相同。

谢谢你们,但我仍然无法让它工作@Eitan,我已使用与实际携带函数的文件相同的名称保存了函数(使用.m,但作为文本文件,并且没有连字符,正如您所建议的)。现在Matlab编辑器喜欢这样(并以绿色显示所有内容),但是,当我运行它时,仍然会收到相同的错误消息“输入参数不足”。在文本函数文件中定义函数时,是否需要遵循任何规则或“不可执行”规则?提前谢谢。您是否试图通过从m文件编辑器中按F5来运行它?如果是这样,那就错了。您需要使用所有必需的输入参数从外部(例如,从命令提示符)调用该函数。在您的示例中,您需要向函数传递5个输入参数。感谢您的回复。是的,我是通过按F5来运行它的,这是错误的,但也有一个文件夹问题(函数不知何故被保存在Matlab无法识别的地方)。修复这些问题后,我的功能现在可以正常工作了。非常感谢。
function [x y] = functionname (a, b, c, d, e)