Curve (Line) Fitting in 3D
이전 댓글 표시
Hi, I've noticed John D'Errico answering a few of these questions but the polyfitn doesn't seem at first trial to do what I want. But I have some data in x,y,z coordinates. See attached for coordinates. I have manually selected x,y from images based on z = [0:2:100]. However I'm not sure how to fit a curve to this in 3D in order to remove error due to manual selection.
댓글 수: 2
Star Strider
2017년 4월 27일
What function do you want to fit to your data?
Alec Day
2017년 5월 1일
채택된 답변
추가 답변 (1개)
Steffen B. Petersen
2017년 12월 16일
0 개 추천
I read your question such that you have a large number of points in 3D (x,y,z), and you want to fit a line through these points.
You should principal component analysis : First you 'whiten' your data by subtracting the mean of you data from each data point. Let us call your mean 'myaverage' - this is point in 3D space at the center of your data. Let us call the whitened data (X,Y,Z)
(X,Y,Z)=(x,y,z)-myaverage
Second you use pca to extract the coefficients - in this case a 3x3 matrix where the first column is the vector that has the largest varians over your dataset.
[coefficient]=pca(X,Y,Z);
You can now draw a line through your datapoints using
mypoint=myaverage+t*coefficient(:,1)
by varying the parameter t you find the points for your fitted line. From this point off you may want to compute the RMS deviation - but that probably is not your problem.
Regards
Steffen
댓글 수: 1
Sarvesh Singh
2018년 2월 15일
편집: Sarvesh Singh
2018년 2월 15일
Hi Steffen,
I'm trying to implement this. Can you please elaborate what this parameter 't' is and what should be its typical value for the best fit. Also is it possible to fit any other curve instead of line using this method?
Regards,
Sarvesh
카테고리
도움말 센터 및 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!

