surface fitting1
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi,
I'd like to ask for help regarding surface fitting and I have very little experience in Matlab.
I have a Z 77x77 matrix.
If I use surf(Z) I can plot it without problem.
I would like to interpolate Z but I couldn't get it right neither with the sftool nor with the gridfit.
If I call sftool I don't even have an option to select this Z matrix. I've read the manuals but it is still unclear how I could do this.
So the question is how to use this interactive sftool if I have a 77x77 large Z matrix [measurement data] and I want to interpolate or somehow fit it.
Thanks, Krivan
댓글 수: 0
채택된 답변
John D'Errico
2011년 6월 3일
Why use gridfit, or for that matter, the surface fitting tool? It is already a surface, on a regular grid. Use interp2, a tool designed for exactly that purpose.
help interp2
Edit: If x and xi are identical, then why are you trying to interpolate anyway? You would get out the input array even if you had called interp2 properly! It does not sound as if you are trying to do interpolation at all.
As far as the surface goes, if it is too noisy and you just want to make it less so, then do some smoothing. A simple solution there is to use a convolution tool, although then you need to deal with edge effects. Easier is to use gridfit, with a larger than normal value for the smoothness parameter.
[xmesh,ymesh] = meshgrid(x,y); zgrid = gridfit(xmesh(:),ymesh(:),z(:),x,y,'smoothness',k);
By default, the smoothing parameter is 1, a value which will yield relatively little smoothing. Try 2 or 5 or 10. Pick a value that makes you happy.
댓글 수: 0
추가 답변 (3개)
Rob Graessle
2011년 6월 3일
To do surface fitting you need to define your X and Y data vectors.
X=1:77; Y=1:77; % Or any other vectors of 77 points
Then you can use SFTOOL by supplying X, Y and Z as the data vectors.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Get Started with Curve Fitting Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!