私は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)
問題はどこだ?