Fitting to 4D data

조회 수: 17 (최근 30일)
Mitch
Mitch 2023년 9월 13일
댓글: Mitch 2023년 9월 14일
The fit() function allows fitting a surface to 3D data, where regularly spaced x,y data values specify a "grid" location and the z value specifies a surface "height". The fitted surface can be expressed as a polynomial of up to degree 5 in x and y.
Is there a means of fitting a model (polynomial or otherwise) to 4D data? In this case, the x,y,z data values specify a location (regularly spaced, within a unit cube for example), and w specifies a value at that location. Such data expresses a 3D "field" rather than a surface.
Thanks, mitch

채택된 답변

Matt J
Matt J 2023년 9월 13일
Yes, you can use lsqcurvefit.
  댓글 수: 3
Matt J
Matt J 2023년 9월 14일
편집: Matt J 2023년 9월 14일
Do you know of any multi-dimensional fitting examples I can look at?
Here's an example I just made up. The unknown parameter vector to be recovered is w:
xyz=rand(100,3); %fake x,y,z data
w=[1,2,3]; %ground truth parameters
F=vecnorm(xyz.*w,2,2); %fake dependent data
F=F+randn(size(F))*0.05; %add noise
wfit=lsqcurvefit(@modelFcn,[1,1,1], xyz,F)
Local minimum found. Optimization completed because the size of the gradient is less than the value of the optimality tolerance.
wfit = 1×3
1.0162 1.9904 2.9886
function Fpred=modelFcn(w,xyz)
Fpred=vecnorm(xyz.*w,2,2);
end
Anyway, the point is that lsqcurvefit doesn't care about the dimensions of the data xyz and F. It only cares that your modelFcn returns a prediction Fpred of F as an array the same size as F.
Mitch
Mitch 2023년 9월 14일
Okay, terrific Matt - thanks for that example. I think that will get me started on the right path.
Thanks again, mitch

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Get Started with Curve Fitting Toolbox에 대해 자세히 알아보기

태그

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by