运行我的脚本时出现一个奇怪的错误:
Unable to find function @(x) exp(x) within H:\blabla\myClass.m.
Run Code Online (Sandbox Code Playgroud)
当我调试时,我得到:
34 b=myAnonymousFunction(a)
K>> myAnonymousFunction(3)
Unable to find function @() exp(x) within HH:\blabla\myClass.m.
K>> class(myAnonymousFunction)
ans =
function_handle
Run Code Online (Sandbox Code Playgroud)
我试图生产的最小例子很好.
你有任何想法错误来自何处及其含义?因为他显然可以找到精神错乱的定义......啊...... 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
Run Code Online (Sandbox Code Playgroud)
并被称为像
myMyclass = myClass({@(x)exp(x)})
myMyClass.f();
Run Code Online (Sandbox Code Playgroud)