Polyfit with plot, semilogx, semilogy, and loglog scales.

22 vues (au cours des 30 derniers jours)
Omar Abdelalim
Omar Abdelalim le 26 Fév 2020
So I have vector x and vector y, and I need to determine which scale fits the data.
x = 2004:2015;
y = [9214, 9271, 9320, 10413, 10930, 11242, 10873, 11801, 13245, 14728, 15463, 16297];
So I decided to use polyfit and use all the plots and let MATLAB show me which one best fits.
%Output:
subplot(1,3,1)
p1 = polyfit(x_new,y,1);
m1 = p1(1);
b1 = p1(2);
plot(x, y, 'o', x, m1.*x+b1), xlabel('years'), ylabel('sales'), title('years vs sales')
subplot(1,3,2)
p2 = polyfit(x_new,log(y),1);
m2 = p2(1);
b2 = 10^(p2(2));
semilogy(x, y, 'o', x, b2*10.^(m2.*x)), xlabel('years'), ylabel('sales'), title('years vs sales')
subplot(1,3,3)
p3 = polyfit(log10(x),log10(y),1);
m3 = p3(1);
b3 = 10^(p3(2));
loglog(x, y, 'o', x, b3.*x.^m3), xlabel('years'), ylabel('sales'), title('years vs sales')
And this is the graph I am getting:
I think the first one is right, and I believe that the line shouldn't look like that in the second one, and the third is just not working for some reason!!!

Réponses (1)

Prabhan Purwar
Prabhan Purwar le 2 Mar 2020
Hi,
Try fitting a higher degree of a polynomial using polyfit function while fitting a curve to logarithmic data as it tends to be a curve rather than a straight line.
For more details refer to the following link
Hope it helps!!

Catégories

En savoir plus sur Interpolation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by