Getting the correct y-intercept and gradient for a trend line using 'fit'

19 次查看(过去 30 天)
Hi there,
I have this code and I would like to get the correct y-intercept (and gradient) for my slope. You can see from the image generated that this function gives me the wrong intercept value. I have tried switching lat and long and I still cannot get the correct value. Does anyone know how I can amend this so it works?
I would also like to measure the fir of my data- Please can someone help me with that?
Many thanks,
lat = [30.4056270000000;30.3991500000000;30.4000740000000;30.4046990000000;30.4102510000000;30.4093280000000;30.3889660000000;30.3982300000000;30.4074760000000;30.4195050000000;30.4139500000000;30.4120980000000;30.4083980000000;30.3936010000000;30.3926810000000];
lon = [40.7602680000000;40.7609660000000;40.7616710000000;40.7623780000000;40.7623830000000;40.7602710000000;40.7644750000000;40.7574480000000;40.7616770000000;40.7609820000000;40.7637930000000;40.7651980000000;40.7637880000000;40.7595540000000;40.7560360000000];
f=fit(lat, lon,'poly1')
xlabel longitude
ylabel latitude
The output of the function is:
f =
Linear model Poly1:
f(x) = p1*x + p2
Coefficients (with 95% confidence bounds):
p1 = 0.1116 (-0.04946, 0.2726)
p2 = 37.37 (32.47, 42.27)


dpb 2019-4-5
编辑:dpb 2019-4-6
Looks quite right to me...the intercept is where the fitted line will cross (intercept) the y-axis at x=0...that point is way and gone to the end of the earth (so to speak) to the left of your axis and with a negative slope of 0.11/degree latitude,
0.11*30 --> -3.3 and 40.76 - 3.3 --> 37.46
which is really close to what the interecept says it is exactly
As for the other question, read
doc fit
and look at the second optional output, gof, the goodness of fit structure.

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by