Linear regression on a semi-log scale

28 views (last 30 days)
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:
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?

Accepted Answer

Miroslav Balda
Miroslav Balda 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
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!
James Mathew
James Mathew on 18 Jun 2013
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
Thanks in advance.

Sign in to comment.

More Answers (0)


Community Treasure Hunt

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

Start Hunting!