How to draw first order best fit in case of hold on figure?

Hi everybody, I have used the following code, and get the fig as shown below.
x = [9.384,39.27];
Y1 = 6.49e-12 * x.^(-4);
Y2 = 4.36e-10 * x.^(-5);
Y3 = 1.69e-10 * x.^(-4.3);
loglog(x,Y1,'*')
hold on
loglog(x,Y2,'*')
hold on
loglog(x,Y3,'*')
set(gca,'xtick',[9.384 39.27]);
set(gca,'xticklabel',{'A','B'});
Now I need to draw the best fit between A and B (best fit line draw from points at A towards points at B). I know the best fit in case of simple x and y plot, but due to hold on I do not know how to do this. Any guidance will be appreciated thanks.

2 Commenti

What does hold on have to do with anything? Are you wanting to know how to use polyfit() to fit a line through the points, like this?
xt = [x(1), x(1), x(1), x(2), x(2), x(2)]
yt = [Y1(1), Y2(1), Y3(1), Y1(2), Y2(2), Y3(2)]
coefficents = polyfit(xt, yt, 1)
@ Image Analyst thanks for response. Actually I want to to draw the best fit between the A and B points.

Accedi per commentare.

 Risposta accettata

Try this:
x = [9.384,39.27];
Y1 = 6.49e-12 * x.^(-4);
Y2 = 4.36e-10 * x.^(-5);
Y3 = 1.69e-10 * x.^(-4.3);
xv = reshape([x; x; x], [], 1); % Create X-Vector
YM = reshape([Y1; Y2; Y3], [], 1); % Create Y-Vector
DM = [xv(:) ones(size(xv(:)))]; % Design Matrix
B = DM \ YM; % Estimate Parameters
YFit = DM * B; % Fit Regression For Plot
figure(1)
loglog(x,Y1,'*')
hold on
loglog(x,Y2,'*')
loglog(x,Y3,'*')
loglog(xv, YFit, '-r') % Plot Regression
hold off
set(gca,'xtick',[9.384 39.27]);
set(gca,'xticklabel',{'A','B'});

3 Commenti

Your B is the same as coefficients in my code:
xt = [x(1), x(1), x(1), x(2), x(2), x(2)]
yt = [Y1(1), Y2(1), Y3(1), Y1(2), Y2(2), Y3(2)]
coefficients = polyfit(xt, yt, 1)
so you're doing the same thing I did, just with backslash instead of polyfit(). I have no idea why he commented to me what he did. Makes no sense to me. I think we're doing what he wants, but apparently we're not, or maybe he just doesn't realize that we are. Or maybe he wants to fit the log of the data instead of the actual data. Nice code you provided though.
@ Image Analyst, actually first I do not understand what you have mentioned in comment. As the answer of Star Strider exactly give me my problem solution and after your second comment I also understand your code. @ Image Analyst and Star Strider thanks both of you.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by