MATLAB Answers

How to linearly fit a semilog graph

43 views (last 30 days)
Sonia Goyal
Sonia Goyal on 19 Feb 2021
Commented: Star Strider on 4 Mar 2021
Hello
I have my data file which is attached below. I have to plot this as semilog ( log scale on Y-axis) and have to linearly fit like the image attached. Please help me with the same

Answers (2)


Star Strider
Star Strider on 26 Feb 2021
Try this:
D1 = readmatrix('Data.xlsx');
x = D1(:,1);
y = D1(:,2);
[ymax,idx] = max(y);
idxrng = idx:numel(y);
objfcn = @(b,x,minlim) b(1).*exp(b(2).*x) + minlim;
B = fminsearch(@(b) norm(y(idxrng) - objfcn(b,x(idxrng),y(end))), [ymax; rand]);
figure
plot(x, y)
hold on
plot(x(idxrng), objfcn(B,x(idxrng),y(end)), '-r', 'LineWidth',1.5)
hold off
grid
set(gca, 'YScale','log')
It’s not easy to fit those data.
Using:
idxrng = 1:numel(y);
objfcn = @(b,x,minlim) b(1).*x.*exp(b(2).*x) + minlim;
instead, might be more accurate.
  4 Comments

Sign in to comment.

Tags

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!