运行脚本时出现一个奇怪的错误:
Unable to find function @(x) exp(x) within H:\blabla\myClass.m.
当我调试时,我得到:
34 b=myAnonymousFunction(a)
K>> myAnonymousFunction(3)
Unable to find function @() exp(x) within HH:\blabla\myClass.m.
K>> class(myAnonymousFunction)
ans =
function_handle
我试图制作的一个最小的例子工作得很好。
你有什么想法错误来自哪里以及它意味着什么?因为他显然可以找到精神错乱的定义……啊……myAnonymousFunction。这只是一个错误吗?我在 matlabcentral 上读过一些东西,但它已经 7 岁了,没有给出解释。
进一步说明:
我在 Windows 8 64 位下运行 MATLAB 2012 b。源文件最初是在 64 位 Linux 下编写的。
我认为这无关紧要,但 myAnonymousFunction 是 myClass 中函数的参数并存储在单元格数组中。所以它是这样的:文件 myClass.m:
classdef myclass < handle
properties
x=1337;
myAnonymousFunctions;
end
methods
function new = myClass(myAnonymousFunctions)
new.myAnonymousFunction=myAnonymousFunction
end
function show(o)
disp(myAnonymousFunction{1}(o.x));
end
end
end
并被称为
myMyclass = myClass({@(x)exp(x)})
myMyClass.f();