I cant figure out whats wrong - but i just cat get this function to work. I have a 2D array of values (256x256) - z
I define X1 as 1x256 vector
Y1 as 1x256 vector
trying to use this, according to an example from the Help Docs:
sf=fit ( [X1,Y1],z,'Exclude', z < 10)
i get abunch of errors which I cant even understand.
Error using fit>iParseOptionalArgs
Algorithm options must be specified in a FITOPTIONS object or as property-value pairs.
Error in fit (line 113)
[useroptions, useroptargs, probparams] = iParseOptionalArgs( varargin{:} );

 채택된 답변

Matt J
Matt J 2022년 5월 2일
편집: Matt J 2022년 5월 2일

0 개 추천

You haven't specified the fit type. Also, your X, Y, and z elements all need to be (256^2)x1 vectors.
[XX,YY]=ndgrid(X1,Y1)
sf=fit ( [XX(:),YY(:)],z(:),fitType, 'Exclude', z < 10)

댓글 수: 7

Thanks Matt, i need clarification 256 squared? i dont understand..
here is what i tried just now:
X1 is a column vector 256x1 (values are from 1, 2, 3, ... to 256)
Y1 is a row vector 1x256 (values are from 1, 2, 3, ... to 256)
>> sf=fit([X1,Y1],z,'linearinterp','Exclude', z < 100)
Error using horzcat
Dimensions of arrays being concatenated are not consistent.
please help me gt this thing to work )))))
Matt J
Matt J 2022년 5월 2일
편집: Matt J 2022년 5월 2일
What happened when you tried what I posted? X,Y, and Z all need to be column vectors of the same length.
>> sf=fit ( [XX(:),YY(:)],z(:),'linearinterp', 'Exclude', z < 10)
Error using curvefit.interpoptions/set
Matrix must be column or row vector.
Error in fitoptions (line 167)
set(f,varargin{:}); % should not allow method to be set.
Error in fit>iGetFitOptions (line 1169)
options = fitoptions(options, useroptargs{:});
Error in fit>iFit (line 178)
options = iGetFitOptions( model, useroptions, useroptargs, warningFcn );
Error in fit (line 116)
[fitobj, goodness, output, convmsg] = iFit( xdatain, ydatain, fittypeobj, ...
my data array has 256x256 matrix of values...
I am attaching the image of my data here.
I am trying to work on fitting this data with a surface..
repeating this for convenience. Here is what i get if i use the sintax you suggested. (i created XX anf YY per your sintax as well)
>> sf=fit ( [XX(:),YY(:)],z(:),'linearinterp', 'Exclude', z < 10)
Error using curvefit.interpoptions/set
Matrix must be column or row vector.
Error in fitoptions (line 167)
set(f,varargin{:}); % should not allow method to be set.
Error in fit>iGetFitOptions (line 1169)
options = fitoptions(options, useroptargs{:});
Error in fit>iFit (line 178)
options = iGetFitOptions( model, useroptions, useroptargs, warningFcn );
Error in fit (line 116)
[fitobj, goodness, output, convmsg] = iFit( xdatain, ydatain, fittypeobj, ...
Matt J
Matt J 2022년 5월 2일
편집: Matt J 2022년 5월 3일
The Exclude option must also be given input in vector form. From the doc:
Exclude Points to exclude from fit
expression | index vector | logical vector | empty
sf=fit ( [XX(:),YY(:)],z(:),fitType, 'Exclude', z(:) < 10)
thank you it finally worked )))

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Get Started with Curve Fitting Toolbox에 대해 자세히 알아보기

제품

릴리스

R2022a

태그

질문:

2022년 5월 2일

댓글:

2022년 5월 5일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by