我是Matlab新手,我試圖在matlab中編寫自定義函數,將函數句柄作爲其參數之一。 我得到這個錯誤的所有時間:無法將函數句柄作爲函數的參數
Error using subsindex
Function 'subsindex' is not defined for values of class 'function_handle'.
試圖調試我進行了如下測試:我運行命令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)
問題出在哪裏?
你說得對! +1爲你和你的答案將被接受。 – drasto