Linear Regression on log log plots

15 次查看(过去 30 天)
Hello – I would like to plot seismic data with a y range from 10 -7 to 10-1 (m*s) and an x range from 1 to 10 000 (Hz) on a log log plot. Than I would like to do a linear regression on this but basic fit gives a line not reflective of the data. Could you please advise what is the best technique to use ?
Any help will be much appreciated.

采纳的回答

dpb
dpb 2015-2-12
编辑:dpb 2017-11-29
X=log10(x); Y=log10(y); % convert both variables to log's
b=polyfit(X,Y,1); % estimate coefficients
yhat=10.^[polyval(b,[X(1) X(end)])]; % evaluate at end points
loglog(x,y)
hold on
loglog([x(1) x(end)],yhat) % add fitted line
  7 个评论
dpb
dpb 2015-2-13
Note the message at the bottom -- "Continue entering statement"
It's waiting for something but I can't tell what--the paren's look to be balanced unless my old eyes are missing one.
Try another CR or two; if that doesn't finish the line then Ctrl-C out back to the command prompt and try again...either there's something in the commandline processor that's hidden or the graphics engine in a newer release has gotten hung up or somesuch; with a 2-length vector it would take only a few seconds at most.
Thomas Schragl
Thomas Schragl 2017-11-29
when trying the code noted above I found that there is one ] missing in line 3
right now:
yhat=10.^[polyval(b,[X(1) X(end)]);
and should be:
yhat=10.^[polyval(b,[X(1) X(end)])];
note the ] before the ;

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Argument Definitions 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by