スクリプトを実行すると、奇妙なエラーが発生します。
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歳で、説明がありません。
詳細な説明:
私はWindows864ビットでMATLAB2012bを実行しています。ソースファイルは元々64ビットLinuxで書かれていました。
関連性はないと思いますが、myAnonymousFunctionはmyClassの関数のパラメーターであり、セル配列内に格納されます。つまり、次のようになります。file 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();