Plot shows in legend but not in graph?

3 ビュー (過去 30 日間)
John Valla
John Valla 2020 年 11 月 1 日
回答済み: Jaswanth 2024 年 6 月 11 日
subplot(2,2,1);
plot(x1,y1,'bs')
hold on
p1 = polyfit(x1,y1,35);
f1 = polyval(p1,x1);
plot(x1,f1,'--r')
hold off
legend
title('Data Set 1')
xlabel('X1 Values')
ylabel('Y1 Values')
subplot(2,2,2);
plot(x2,y2,'g*')
hold on
p2 = polyfit(x2,y2,35);
f2 = polyval(p2,x2);
plot(x2,f2,'--b')
hold off
legend
title('Data Set 2')
xlabel('X2 Values')
ylabel('Y2 Values')

回答 (1 件)

Jaswanth
Jaswanth 2024 年 6 月 11 日
Hi John,
As per the code you have provided, I observed that you are using a high-degree polynomial which is having a value of ‘35’ when calling the “polyfit” function for fitting your data, which can cause issues similar to one you are facing where plot is not visible.
This problem often arises because a polynomial fit of degree ‘35’ is extremely sensitive to the specific data points, leading to overfitting. Overfitting makes the model too closely aligned with the data points, which can result in a plot that does not visually represent the data well.
When testing with a similar setup, MATLAB throws a warning that the polynomial is badly conditioned, suggesting that the fit may not be appropriate.
Kindly refer to the image below to see the warning:
The above warning points towards possible solutions: adding more data points, reducing the polynomial's degree, or adjusting the data through centering and scaling.
For a more detailed explanation and potential solutions, please refer to the following MathWorks documentation on the "polyfit” function: www.mathworks.com/help/matlab/ref/polyfit.html
I hope the information provided above is helpful in resolving the issue.

カテゴリ

Help Center および File ExchangeTitle についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by