Sorry. I pressed enter without asking my question. I want to know for calculating regression line I should allocate an arrays of ones or zeros? I don't know which one is correct. and also 'y = ', num2str(round(Baa(2)*100)/100), is correct or I don't need to multiply and divide it by 100? Thanks
To Calculate the slope
3 views (last 30 days)
Show older comments
B= [ones(length(x1),1) x1(:)]\y1(:); % Estimate Regression Parameters
yf = [ones(length(x1),1) x1(:)]*B; % Calculate Regression Line
slope= B(2);
intercept = B(1);
plot(x1,y1,'.b');
plot (x1,yfaa,'r')
text(-20,-25,['y = ', num2str(round(Baa(2)*100)/100), 'x'],'fontsize',20);
2 Comments
Answers (1)
Star Strider
on 15 Sep 2016
Using ones is correct. I create a design matrix and use it both for estimating the parameters and calculating the regression line afterwards. This involves some minor changes to your code:
DsnMtx = [ones(size(x(:)) x1(:)];
B = DsnMtx\y1(:); % Estimate Regression Parameters
yf = DsnMtx*B; % Calculate Regression Line
That is slightly more efficient, since you only need to calculate the design matrix once.
2 Comments
Star Strider
on 16 Sep 2016
My pleasure.
The syntax error is due to a typographical error in my code. I forgot the ‘1’. It should be:
DsnMtx = [ones(size(x1(:)) x1(:)];
I would use the sprintf function instead:
text(0,17,sprintf('y = %.2f', x),'fontsize',20);
You might want to experiment with the 'VerticalAlignment' and 'HorizontalAlignment' name-value pairs as well.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!