# Generate a logarithmic regression of xlsdata and plot it

5 views (last 30 days)
Sergio on 22 Feb 2024
Commented: Sergio on 26 Feb 2024
I have the given data in the xls file. I tried to convert the Var1 and Var2 to log10 values, and then do a regression with the given command. But I get an error.
Incorrect number or types of inputs or outputs for function log10.
X=log10('Var1'); Y=log10('Var2'); % convert both variables to log's
X=log10('Var1'); Y=log10('Var2'); % 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
plot(ans)
Where is the error here?
Thanks!

Dyuman Joshi on 22 Feb 2024
That is not how you access data inside Tables. Go through this for more information - Access Data in Tables
%% Provide the filename with extension
%% Use dot indexing to access the data
X=log10(P.Var1);
Y=log10(P.Var2); % 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
%% Variable names are capital
figure
loglog(X,Y,'r')
hold on
plot([X(1) X(end)],yhat,'b') % add fitted line
Dyuman Joshi on 24 Feb 2024
The red line is the plot of the data you have, and the blue line is the corresponding linear fit to the data. You can infer that from the code.
Read the description of the polyfit function - https://in.mathworks.com/help/matlab/ref/polyfit.html#description
"p = polyfit(x,y,n) returns the coefficients for a polynomial p(x) of degree n ..."
Sergio on 26 Feb 2024
Thanks , this worked out well!

### Categories

Find more on Descriptive Statistics in Help Center and File Exchange

R2023b

### Community Treasure Hunt

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

Start Hunting!