linear fit in Log Scale + extension

조회 수: 8 (최근 30일)
Niklas Kurz
Niklas Kurz 2020년 6월 16일
댓글: Niklas Kurz 2020년 6월 17일
Hello, also this question might be trivial and frequently answered, but yet again I'm not able to grasp it. Long story short, that's what I got:
ind = f>=5000& f <= 10000
p = polyfit(f(ind),qU(ind),1);
t = polyval(p,(f(ind)));
plot(f(ind),t,'-r','Linewidth',3);
actually this looks like a straight line to me, even if I set:
set(gca,'XScale','log')
set(gca,'YScale','log')
However I want to extend this line, lets say to [5000 15000]. How can I finally achieve this? Thx in advance

채택된 답변

David Hill
David Hill 2020년 6월 16일
편집: David Hill 2020년 6월 16일
ind = f>=5000& f <= 10000
p = polyfit(f(ind),qU(ind),1);%you will always get a line if degree is 1
x=5000:15000;
t = polyval(p,x);
plot(x,t,'-r','Linewidth',3);
  댓글 수: 3
Niklas Kurz
Niklas Kurz 2020년 6월 16일
편집: Niklas Kurz 2020년 6월 16일
so in comparision: Linear scale with Lines
David Hill
David Hill 2020년 6월 17일
p1 = polyfit(f(1:2),qU(1:2),1);%however many points you want
p2 = polyfit(f(3:end),qU(3:end),1);%second line
x=5000:15000;
t1 = polyval(p1,x);
t2 = polyval(p2,x);
plot(x,t1,'-r',x,t2,'-g','Linewidth',3);

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

추가 답변 (1개)

Niklas Kurz
Niklas Kurz 2020년 6월 17일
Thank you for your effort, that is what I implemeted:
p1 = polyfit(f(1:2),qU(1:2),1);%however many points you want
x=5000:50000;
t1 = polyval(p1,x);
plot(x,t1,'-r','Linewidth',3);
p2 = polyfit(f(3:8),qU(3:8),1);%second line
x=15000:640000;
t2 = polyval(p2,x);
plot(x,t2,'-g','Linewidth',3);
However: that is what I receive: Sorry for bothering you still, but its not quite running well due to my lack of log-knowledge.
  댓글 수: 1
Niklas Kurz
Niklas Kurz 2020년 6월 17일
Okay, I finally unravelled he solution, it proved to be a really tricky one:
p1 = polyfit(log(f(1:2)),log(qU(1:2)),1);%however many points you want
x=5000:50000;
t1 = polyval(p1,log(x));
hold on
loglog(x,exp(t1))
p2 = polyfit(log(f(3:8)),log(qU(3:8)),1);%however many points you want
x=5000:640000;
t2 = polyval(p2,log(x));
hold on
loglog(x,exp(t2))
I view you answere as correct bc your extension was really valuable. Many thanks.

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

카테고리

Help CenterFile Exchange에서 Interpolation에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by