私はMatlabが初めてで、引数の1つとして関数ハンドルを取るカスタム関数をmatlabで記述しようとしています。私はいつもこのエラーを受けています:
Error using subsindex
Function 'subsindex' is not defined for values of class 'function_handle'.
デバッグしようとして、次のテストを実行しました: I run command x = fminbnd(@humps, 0.3, 1)
. 私は期待通りに進みました - 私は結果を得x = 0.6370
ました。そこで、呼び出されるカスタム関数を作成しtrain
、関数のすべてのコードをfminbnd
ファイルにコピーしましたtrain.m
。私が変更したのは名前だけなので、関数のコードはfminbnd
名前train
を除いて同じになりました。
今、同じ引数で両方の関数を実行すると、カスタム関数はエラーをスローしますが、オリジナルfminbnd
は正しい答えを返します。コードは次のとおりです。
>> x = fminbnd(@humps, 0.3, 1)
x =
0.6370
>> x = train(@humps, 0.3, 1)
Error using subsindex
Function 'subsindex' is not defined for values of class 'function_handle'.
関数のヘッダーは次のとおりtrain
です (他のすべてはからコピーされますfminbnd
)。
function [xf,fval,exitflag,output] = train(funfcn,ax,bx,options,varargin)
問題はどこだ?