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
2 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (1 件)
Star Strider
2016 年 9 月 15 日
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 件のコメント
Star Strider
2016 年 9 月 16 日
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.
参考
カテゴリ
Help Center および File Exchange で Descriptive Statistics についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!