MATLAB: Average of a function handle

averagefunction handleMATLAB

can someone please help me with ploting the mean of the function below?
d0=1;% Free space reference distance in meters
c = 3e8; %% speed of light (m/s)
n = 2; % Path loss exponent (PLE)
SF = 4.0;% Shadow fading standard deviation in dB
f=3; %frequency
h_BS=35; % base station high
TXPower = 30;% Tx power
PL_dB =@(TRDistance)( 20*log(4*pi*d0*f*1e9/c) + 23.1*(1-0.03*((h_BS-35)/35))*log((TRDistance)) + SF*randn);
for TRDistance = linspace(1,500,30)%1 to 28 in 30 steps
% Calculate the received power
if PL_dB(TRDistance) < 0
Pr_dB = @(TRDistance) TXPower + PL_dB(TRDistance);
else
Pr_dB = @(TRDistance) TXPower - PL_dB(TRDistance);
end
end
fplot(Pr_dB, [1,500]);

Best Answer

d0=1;% Free space reference distance in meters
c = 3e8; %% speed of light (m/s)
n = 2; % Path loss exponent (PLE)
SF = 4.0;% Shadow fading standard deviation in dB
f=3; %frequency
h_BS=35; % base station high
TXPower = 30;% Tx power
PL_dB =@(TRDistance)( 20*log(4*pi*d0*f*1e9/c) + 23.1*(1-0.03*((h_BS-35)/35))*log((TRDistance)) + SF*randn);
TrDistances = linspace(1,500,30);
Pr_Db = zeros(size(TrDistances));
for didx = 1 : numel(TrDistances)
TrDistance = TrDistances(didx);
% Calculate the received power
pldb = PL_dB(TRdistance);
if pldb < 0
Pr_dB(didx) = TXPower + pldb;
else
Pr_dB(didx) = TXPower - pldb;
end
end
plot(TrDistances, Pr_dBmean);
Note: instead of the if you can use:
PR_db(didx) = TXPower - abs(PL_dB(TRdistance));