Index exceeds matrix dimensions

조회 수: 1 (최근 30일)
abdulaziz alofui
abdulaziz alofui 2014년 4월 17일
댓글: Image Analyst 2014년 4월 18일
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

채택된 답변

Image Analyst
Image Analyst 2014년 4월 18일
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
  댓글 수: 4
abdulaziz alofui
abdulaziz alofui 2014년 4월 18일
Index exceeds matrix dimensions.
this line : PL = A+10*gamma*log10(distance(k,l)/do*1000);
Image Analyst
Image Analyst 2014년 4월 18일
That's not the code I gave you!!!!

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Sara
Sara 2014년 4월 17일
The variable dis is 1 by 8 while you ask the code to access dis(k,l) with k from 1 to 50
  댓글 수: 2
abdulaziz alofui
abdulaziz alofui 2014년 4월 17일
no the variable dis its mean the distance b/w 50 random userlocation and 8 random access point
Sara
Sara 2014년 4월 17일
I ran the code as is and that's what acme out. You'll need to change that variable expression if it is not what you expected.

댓글을 달려면 로그인하십시오.


Walter Roberson
Walter Roberson 2014년 4월 17일
UserLocationX = randi(50, 1, 50) is going to build UserLocationX as a row vector. UserLocationX(:,1) then asks for a particular column out of that row vector, and since there is only one row in the row vector the result is going to be a scalar.
Watch out for row versus column access.

카테고리

Help CenterFile Exchange에서 Discrete Math에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

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

Start Hunting!

Translated by