为什么Matlab看不到我的功能?

use*_*761 1 matlab function file-not-found

我的功能肯定在起作用; 它已经过测试,并且有一点被认可.

这是函数原型:

function [X Y] = calculateEllipse(x, y, a, b, angle)
%# Code here
end
Run Code Online (Sandbox Code Playgroud)

这是我在Matlab终端上发出的电话:

calculateEllipse (612, 391, 107, 60, 331)
Run Code Online (Sandbox Code Playgroud)

这是我突然出现的错误:

??? Undefined function or method 'calculateEllipse' for input arguments of
type 'double'.
Run Code Online (Sandbox Code Playgroud)

现在,我100%肯定我和该函数位于同一目录中.我甚至用过

addpath('C:\path-to-function')
Run Code Online (Sandbox Code Playgroud)

确保;确定.它只是不起作用,我很困惑.

任何帮助表示赞赏.

Ric*_*ton 5

总结其他帖子,这是一个确定问题原因的工作流程.

  1. 您错误输入了该函数的名称.检查函数定义并确保它确实调用calculateEllipse.

  2. 您将该函数保存到名称不是函数名称的文件中.检查函数的文件名,确保它与函数名称匹配.

  3. 包含函数名称的文件夹不在MATLAB路径中.有几种方法可以检查这一点.键入path以查看当前路径,或which calculateEllipse查找MATLAB用于该文件的位置.(如果出现问题,将显示最后一个命令'calculateEllipse' not found..请注意,addpath这不会永久更新路径,因此当您关闭MATLAB时,路径将被重置.savepath用于此目的.

  4. 包含该函数的文件夹是.的子目录matlabroot.这些文件夹保留用于完全成熟的工具箱; 在这里存储代码时会发生不好的事情.有关更多信息,请参阅Bob的答案.

其他有用的东西要检查:

  1. 你可以调用存储在同一文件夹中的其他功能吗?

  2. 如果将该功能保存在其他文件夹中,它会运行吗?