Polyfit 4th degree unexpected behavior

조회 수: 3 (최근 30일)
Terence O'Brien
Terence O'Brien 2020년 7월 29일
댓글: Terence O'Brien 2020년 7월 29일
I'm getting strange results plotting a 4th degree polynomial.
Here is the resultant graph:
I don't understand why there appear to be 2 lines. The first degree polynomial is just a single line, and 2nd degree and beyond comes up with the two lines like this graph.
The data is a 420x3 matrix attached.
here is the code:
p1=polyfit(tp(:,1),tp(:,2),4); %4th degree polynomial
f=polyval(p1,tp(:,1));
figure(1)
plot(tp(:,1),tp(:,2),'*',tp(:,1),f)

답변 (1개)

Steven Lord
Steven Lord 2020년 7월 29일
It looks to me like tp(:, 1) is not sorted. You can check this with issorted. If it's not sorted, MATLAB may draw a line from around x = 27 back to x = 13 then have to draw a straight line back to x = 25.
Try sorting tp(:, 1) before using it to evaluate the fitted polynomial and before plotting.
  댓글 수: 3
Terence O'Brien
Terence O'Brien 2020년 7월 29일
Awesome, thanks so much.
The data is not sorted. I tried that with sort(tp) yesterday and I end up with this:
So now my data is inverted. I'm sure there is an easy fix... might you have the answer?
Terence O'Brien
Terence O'Brien 2020년 7월 29일
I did try sort(tp,'descend') and it is the same

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

카테고리

Help CenterFile Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by