Function Error not understood
1 次查看(过去 30 天)
显示 更早的评论
I wrote the following function:
function diff = fit_simp(x,X,Y)
% This function is called by lsqnonlin.
% x is a vector which contains the coefficients of the
% equation. X and Y are the option data sets that were
% passed to lsqnonlin.
A=x(1);
B=x(2);
n=x(3);
diff = (A+B*(X^n)) - Y;
end
Then the following script;
>> X=xlsread('QS2T.xls',9,'V638:V1835');
>> Y=xlsread('QS2T.xls',9,'W638:W1835');
>> X0=[800 1537 0.1448];
>> options = optimset('Largescale','off');
>> x=lsqnonlin(@fit_simp,X0,[],[],options,X,Y);
I get the error below, don't know what is wrong. All this was given in matlab examples in the website.PLs help, *|??? Error using ==> mpower Matrix must be square.
Error in ==> fit_simp at 12 diff = (A+B*(X^n)) - Y;
Error in ==> lsqnonlin at 202 initVals.F = feval(funfcn{3},xCurrent,varargin{:});
Caused by: Failure in initial user-supplied objective function evaluation. LSQNONLIN cannot continue.|*
0 个评论
采纳的回答
Honglei Chen
2012-3-8
You may want to use X.^n to achieve element-wise operation
7 个评论
Honglei Chen
2012-3-8
this might suggest that the function didn't converge but I'm not sure what's wrong. You may need to examine your data.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!