フィルターのクリア

To Calculate the slope

4 ビュー (過去 30 日間)
Hana
Hana 2016 年 9 月 15 日
コメント済み: Star Strider 2016 年 9 月 16 日
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 件のコメント
Hana
Hana 2016 年 9 月 15 日
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
Adam
Adam 2016 年 9 月 15 日
What is the question? You have just pasted some code in!

サインインしてコメントする。

回答 (1 件)

Star Strider
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 件のコメント
Hana
Hana 2016 年 9 月 16 日
Thanks for the answer. I get a syntax error on DsnMtx = [ones(size(x(:)) x1(:)];
and is this line correct? text(0,17,['y = ', num2str(round(B(2)*100)/100),'x'],'fontsize',20);
Thanks
Star Strider
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.

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by