How to linearly fit a semilog graph

31 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)

Jonas
Jonas on 19 Feb 2021
  1 Comment
Sonia Goyal
Sonia Goyal on 26 Feb 2021
Thank you for your rresponse. But this isn't working for this data.

Sign in to comment.


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
Sonia Goyal
Sonia Goyal on 4 Mar 2021
Thank you for you response.

Sign in to comment.

Categories

Find more on Graphics Object Identification in Help Center and File Exchange

Tags

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!