我的功能绝对有效;它经过测试并一度被识别。
函数原型(prototype)如下:
function [X Y] = calculateEllipse(x, y, a, b, angle)
%# Code here
end
这是我从 Matlab 终端发出的调用:
calculateEllipse (612, 391, 107, 60, 331)
这是向我弹出的错误:
??? Undefined function or method 'calculateEllipse' for input arguments of
type 'double'.
现在,我 100% 肯定我与函数位于同一目录中。我什至用过
addpath('C:\path-to-function')
确定。它就是不起作用,我很困惑。
感谢任何帮助。
最佳答案
为了总结其他帖子,这里有一个确定问题原因的工作流程。
您输入错误的函数名称。检查函数定义并确保它确实调用了 calculateEllipse
。
您将函数保存到一个名称不同于函数名称的文件中。检查函数的文件名并确保它与函数名称匹配。
包含函数名称的文件夹不在 MATLAB 路径中。有几种方法可以检查这一点。键入 path
以查看当前路径,或键入 which calculateEllipse
以查找 MATLAB 用于该文件的位置。 (如果有问题,最后一条命令将显示 'calculateEllipse' not found.
。请注意 addpath
不会永久更新路径,因此当您关闭 MATLAB 时,路径将被重置。为此使用 savepath
。
包含该函数的文件夹是 matlabroot
的子目录。这些文件夹是为成熟的工具箱保留的;当您将代码存储在这里时,会发生不好的事情。参见 Bob's answer了解更多信息。
其他需要检查的有用的东西是:
是否可以调用存储在同一文件夹中的其他函数?
如果将函数保存在不同的文件夹中,它会运行吗?
https://stackoverflow.com/questions/7251612/