MATLAB: Index exceeds matrix dimensions

this is my code:
pathloss2 = zeros(50,8);
f = 2500;
height = 5; % height of the base station(b/w 10 t0 80 meters)
do = 100; % constant
% d=500; %d>do
% s=8; % typical value of standard deviation (b/w 8 and 10 dB)
wavelength = 3.0e+8/f;
atype = 4.6; % model parameters
btype = 4;
ctype = 3.6;
gamma = (atype-btype*height+ctype/height);
A = 20*log10(4*3.14*do/wavelength);
deltaPLf = 6*log10(f/2000);
deltaPLh = -10.8*log10(height/1.5);
UserLocationX = randi(50, 1, 50);
UserLocationY = randi(50, 1, 50);
AccessPointX = randi(50, 1, 8);
AccessPointY = randi(50, 1, 8);
dis = sqrt((UserLocationX(:,1)-AccessPointX).^2 + (UserLocationY(:,2)-AccessPointY).^2);
for k=1:50
for l=1:8
PL = A+10*gamma*log10(dis(k,l)/do*1000);
pathloss2(k,l)= PL + deltaPLf + deltaPLh + 30;
end
end

Best Answer

Bring dis inside the loop. Try this:
UserLocationX = randi(50, 1, 50);
UserLocationY = randi(50, 1, 50);
AccessPointX = randi(50, 1, 8);
AccessPointY = randi(50, 1, 8);
for k=1:50
for l=1:8
distance = sqrt((UserLocationX(k)-AccessPointX(l)).^2 + (UserLocationY(k)-AccessPointY(l)).^2);
PL = A+10*gamma*log10(distance/do*1000);
pathloss2(k,l)= PL + deltaPLf + deltaPLh + 30;
end
end