MATLAB Answers

How to find the intersection of a fitting line with a logarithmic y-axis?

2 views (last 30 days)
Lu Da Silva
Lu Da Silva on 2 Oct 2021
Answered: Kevin Holly on 2 Oct 2021
I have a vector A = [10 40 60 80]
and a vecor B = [5 6 7 8]
I need to create a plot where the x-axis is B and the y-axis is A in the logarithmic scale. Then I need to find the intersection of the fitting line of the scatter with the y-axis.
I used semilogy(B,A) but that only gives me the line and I need to find the intersection.

Answers (1)

Kevin Holly
Kevin Holly on 2 Oct 2021
A= [10 40 60 80];
B = [5 6 7 8];
scatter(B,A,20,'filled')
set(gca,'YScale','log')
% Polyfit
p = polyfit(B,A,2);% 2nd order
f1 = polyval(p,B);
hold on
plot(B,f1,'r--') % poly fit as red dashed line
semilogy(B,A,'g') %log fit as green line
myfit = fittype('a + b*log(x)',...
'dependent',{'y'},'independent',{'x'},...
'coefficients',{'a','b'});
[model stats] = fit(B',A',myfit)
Warning: Start point not provided, choosing random start point.
model =
General model: model(x) = a + b*log(x) Coefficients (with 95% confidence bounds): a = -226.1 (-265.5, -186.7) b = 147.4 (126.2, 168.5)
stats = struct with fields:
sse: 5.9358 rsquare: 0.9978 dfe: 2 adjrsquare: 0.9967 rmse: 1.7228
plot(B,model(B),'b') % log fit as blue line
I am not quite sure how to calculate the intersection, but found this:

Community Treasure Hunt

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

Start Hunting!