Extend a line of best fit

조회 수: 115 (최근 30일)
Brian Robinson
Brian Robinson 2020년 5월 29일
답변: Brian Robinson 2020년 5월 29일
I have the following code which gives a plot and a line of best fit.
ARI_Weibull = ones(n,1)./P_Weibull;% Average Return Interval 1/P
figure
semilogx((ARI_Weibull), Q, 'r');
p_1 = polyfit(log(ARI_Weibull),Q,1); % Linear best fit
f_1 = polyval(p_1,log(ARI_Weibull));
hold on
semilogx(ARI_Weibull,f_1,'--r')
Q_100yr = polyval(p_1, log(100)) % Q value for 1 in 100 year
xline(100) ;
I now want to extend the line of best fit which I calculated to show its intersection with x = 100, which should correspond to a y value of Q_100yr calculated above.
How do I go about extending this line.
Thanks in advance,
Brian

채택된 답변

KSSV
KSSV 2020년 5월 29일
You have used polyfit, so you have slope and y-intercept in your hand. For a given value of x, you can find respective y value using polyval.
y_100 = polyval(p_1,100);
If you want to extend to certain range of values [xmin,xmax], also you can do using polyval.
m = 100 ;
xi = linspace(xmin,xmax,m) ; % give your values for xmin, xmax
yi = polyval(p_1,xi);
  댓글 수: 2
Brian Robinson
Brian Robinson 2020년 5월 29일
Ok well I have y_100 already as Q_100yr
My original figure looks like this:
Now I have done as you say:
m = 100;
xi = linspace(1,1000,100);
yi = polyval(p_1,xi);
Now what is the command to plot this? Because I tried semilogx(xi,yi) and that isn't right.
KSSV
KSSV 2020년 5월 29일
yi = polyval(p_1,log(xi));

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Brian Robinson
Brian Robinson 2020년 5월 29일
Ok thanks for that.

카테고리

Help CenterFile Exchange에서 Interpolation of 2-D Selections in 3-D Grids에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by