MATLAB: Fitlm works but polyfit does not work

MATLAB

I run polyfit and fitlm for the same data. fitlm provides an output. But polyfit and corrcoef return NaN. How can it be?

Best Answer

There is probably NaN somewhere in your dataset. fitlm() ignores those data values. For example
x = linspace(0, 1, 10);
y = 2*x + 3 + rand(size(x));
y(3) = nan;
p = polyfit(x, y, 1)
c = corrcoef(y)
ft = fitlm(x, y)
Result
>> p
p =
NaN NaN
>> c
c =
NaN
>> ft
ft =
Linear regression model:
y ~ 1 + x1
Estimated Coefficients:
Estimate SE tStat pValue
________ _______ ______ __________
(Intercept) 3.1773 0.13254 23.973 5.5901e-08
x1 2.3847 0.21348 11.17 1.0268e-05
Number of observations: 9, Error degrees of freedom: 7
Root Mean Squared Error: 0.206
R-squared: 0.947, Adjusted R-Squared: 0.939
F-statistic vs. constant model: 125, p-value = 1.03e-05