## Linear regression on a semi-log scale

on 11 Jun 2013

### Miroslav Balda (view profile)

Hi,

I'm trying to plot a linear regression line on a semi-log scale.

Y-axis Linear Received power in dB

X-axis Log distance in m

The program and data I'm using as as follows:

Inc=1;

D=10; %Max meaurement distance

d1=(1:Inc:D); %1m to max measurment distance (D) in Increments (Inc)

RXPdata1=[-45.0983; -53.3746; -54.4132; -56.8286; -59.2905; -60.2743; -60.6919; -59.4938; -64.0525; -62.6163]; %Measured data in dB

semilogx(d1,(RXPdata1(:,1)),'-or') %Plot measured data

hold on

%Graph Set up

title ('Plot showing measured data')

xlabel('Distance (m) [Log scale]')

ylabel('Recieved Power (dB)')

legend ('Measured Data','Location','EastOutside')

axis([0 10 -70 -35]);

hold on

grid on

Can anyone help?

James

### Miroslav Balda (view profile)

on 11 Jun 2013

The following code solves your problem:

```% James.m
%  JAMES   Linear regression on a semilog scale
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%       2013-06-11
%
% Miroslav Balda
% miroslav AT balda DOT cz
%
Inc=1;
D=10;           %   Max meaurement distance
%
d1=(1:Inc:D);   %   1m to max measurment distance (D) in Increments (Inc)
RXPdata1=[-45.0983; -53.3746; -54.4132; -56.8286; -59.2905; -60.2743;...
-60.6919; -59.4938; -64.0525; -62.6163]; %    Measured data in dB
%
semilogx(d1,(RXPdata1(:,1)),'-or')          %    Plot measured data
hold on
%
%                %   Graph Set up
%
title ('Plot showing measured data','FontSize',14, 'FontWeight','bold')
xlabel('Distance (m) [Log scale]','FontSize',10, 'FontWeight','bold')
ylabel('Recieved Power (dB)','FontSize',10, 'FontWeight','bold')
%
axis([0 10 -70 -35]);
hold on
grid on
%
%   Regression
%
logd1 = log10(d1');
A     = [ones(size(RXPdata1)),logd1];
c = A\RXPdata1
y = A*c;
plot(d1,y,'o-', d1,y,'*-')
%
legend ('Measured Data','Lin. Regression','Location','EastOutside')
```

It is all. Good luck!

Mira

James Mathew

### James Mathew (view profile)

on 11 Jun 2013

Mira,

Many many thanks, this has saved me hours of work!!!

James

James Mathew

### James Mathew (view profile)

on 18 Jun 2013

Mira,

Me again, any chance you could help me out again. If trying to find the following variables for the line:

- where the line intersects 0 (or it is 1?) - the gradient - the regression coefficient