我跑我的腳本時得到一個奇怪的錯誤:matlab如何無法找到匿名函數?
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
我嘗試小例子,以生產工作的罰款。
你有什麼想法,錯誤來自哪裏? 因爲他明顯可以找到瘋狂的定義...... ahh ... myAnonymousFunction。它只是一個錯誤?我讀了something on 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();
什麼是myAnnonymousFunction?它是'myClass.m'中實現的主類嗎?如果是這樣,爲什麼不是該文件也稱爲「myAnnonymousFunction.m」?如果不是,你可以解釋一下關於類/函數層次結構嗎? – 2013-03-24 17:18:03
myAnnonymousFunction是一個包含匿名函數的變量 – 2013-03-24 19:12:15