Polyfit 4th degree unexpected behavior
3 次查看(过去 30 天)
显示 更早的评论
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)
0 个评论
回答(1 个)
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!