Code covered by the BSD License

### Highlights from Power Law, Exponential and Logarithmic Fit

4.72727
4.7 | 11 ratings Rate this file 158 Downloads (last 30 days) File Size: 20.9 KB File ID: #29545 Version: 1.5

# Power Law, Exponential and Logarithmic Fit

### Jonathan C. Lansey (view profile)

26 Nov 2010 (Updated )

Finds and plots the linear fit to some data points when plotted on a log scale.

File Information
Description

logfit(X,Y,graphType), where X is a vector and Y is a vector or a
matrix will plot the data with the axis scaling determined
by graphType as follows: graphType-> xscale, yscale
loglog-> log, log
logx -> log, linear
logy -> linear, log
linear -> linear, linear
A line is then fit to the scaled data in a least squares
sense.
See the 'notes' section below for help choosing a method.
logfit(X,Y), will search through all the possible axis scalings and
finish with the one that incurs the least error (with error
measured as least squares on the linear-linear data.)

Notes:
A power law relationship
[slope, intercept] = logfit(x,y,'loglog');
yApprox = (10^intercept)*x.^(slope);

An exponential relationship
[slope, intercept] = logfit(x,y,'logy');
yApprox = (10^intercept)*(10^slope).^x;

A logarithmic relationship
[slope, intercept] = logfit(x,y,'logx');
yApprox = (intercept)+(slope)*log10(x);

A linear relationship
[slope, intercept] = logfit(x,y,'linear');
yApprox = (intercept)+(slope)*x;

MATLAB release MATLAB 7.11 (R2010b)
Tags for This File   Please login to tag files.
 Please login to add a comment or rating.
Comments and Ratings (11)
25 Aug 2015 Nathaniel Howard

### Nathaniel Howard (view profile)

Jonathan C. Lansey, you sir are a legend!
Many thanks for this function.
Would the be any way to extend the fitted line to meet x-axis at all?
Its not vital, merely for display purposes.
Many thanks anyway.
Nath

21 Apr 2015 Jørgen Grythe

### Jørgen Grythe (view profile)

Perfect, exactly what I needed!

08 Feb 2015 Alberto Rodríguez Fernández

### Alberto Rodríguez Fernández (view profile)

Great!
Thank you for your function!!

13 Nov 2013 Budi

### Budi (view profile)

very usefull,,

by the way, how to make non linear curve fit using custom equation when plot on log scale?

thx

23 Sep 2013 Saskia

### Saskia (view profile)

11 Jul 2013 Franziska

### Franziska (view profile)

Thanks a lot! Very helpful

23 May 2013 Shea

### Shea (view profile)

Just what the Dr. ordered. Thank You.

11 Feb 2013 a

### a (view profile)

Awesome!

30 Jan 2012 Shatrughan

### Shatrughan (view profile)

Saviour !!!!!!!!!!

06 Jan 2012 Matlab2010

### Matlab2010 (view profile)

Nice.

I use:

% y = a x^b
function [a b] = my_powerLawFit(y, x)

logx=log(x);
logy=log(y);
p=polyfit(logx,logy,1);
b=p(1);
loga=p(2);
a=exp(loga);
end

30 Jan 2011 Manas Hardas

### Manas Hardas (view profile)

Extremely cool!

Updates
09 Aug 2013 1.2

Updated to include Mean Squared Error

17 Dec 2013 1.3

fixed 'skipbegin' feature functionality

09 Jan 2014 1.4

Updated to use R2 as 'best fit' criterion rather than MSE

22 Aug 2014 1.5

Added new color option which lets you set the 'color' of both lines and markers with one parameter. Added robustness to NaN values.

Contact us