MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by James Mathew
on 11 Jun 2013

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

*No products are associated with this question.*

Answer by Miroslav Balda
on 11 Jun 2013

Accepted answer

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
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

Thanks in advance.

James

## 0 Comments