MATLAB: Do we set r=r+1 when (x(t)-rang​eX(r))*(x(​t)-rangeX(​r+1))>0 in the uniform variables code

communicationMATLABpdf

a=3;
b=7;
T=10^6;
BinW=0.01;
x=zeros(1,T);
rangeX=3:BinW:7;
Count=zeros(1,length(rangeX)-1);
for t=1:T
u=rand(1);
x(t)=a+(b-a)*u
r=1;
while (x(t)-rangeX(r))*(x(t)-rangeX(r+1))>0
r=r+1;
end
Count(r)=Count(r)+1;
end
bar(rangeX(1:length(rangeX)-1),Count);
axis([2.5 7.5 0 3000]);
I get this code from the class,and this code is about the uniform variables,in this code,i have some lines that i don't understand ,i hope someone can explain them to me.
1.
Count=zeros(1,length(rangeX)-1);
why do we create the 1 by length(rangeX)-1 zero matrix first,but not 1 by length(rangeX) zero matrix ?
2.
while (x(t)-rangeX(r))*(x(t)-rangeX(r+1))>0
r=r+1;
end
I don't understand the meaning of these three lines code,why do we set r=r+1 when (x(t)-rangeX(r))*(x(t)-rangeX(r+1))>0

Best Answer

while (x(t)-rangeX(r))*(x(t)-rangeX(r+1))>0
is the cheking if x(t) is not in
its the same as:
while ~( rangeX(r) < x(t) && x(t) < rangeX(r+1) )
Related Question