MATLAB: Could you please check the code

MATLABpdist2Statistics and Machine Learning Toolbox

R=[1,-0.5,-0.5];
for i=2:25
a = -0.50;
b = 0.50;
R = [R;i,(b-a).*rand(1,1) + a,(b-a).*rand(1,1) + a];
end
R=[R;26,0.5,0.5];
disp(R);
[D,I] = pdist2(R(:,(2:3)),R(:,(2:3)),'euclidean','Smallest',3);
D(1,:)=[];
I(1,:)=[];
disp(D);
disp(I);
Edge=zeros(52,3);
for i=1:26
%intersect is a function written correctly!
if intersect(R(i,2:3),R(I(1,i),2:3))==1
continue
else
Edge(i,1)=i;
Edge(i,2)=I(1,i);
Edge(i,3)=D(1,i);
end
end
for j=1:26
if intersect(R(j,2:3),R(I(2,j),2:3))==1
continue
else
Edge(j+26,1)=j;
Edge(j+26,2)=I(2,j);
Edge(j+26,3)=D(2,j);
end
end
disp(Edge);
Q=zeros(1,3);
for k=1:51
if Edge(k,:)==Q
Edge(k,:)=[];
end
end
disp(Edge);
The error I am receiving is:
Index in position 1 exceeds array bounds (must not exceed 42).
Error in ehe (line 39)
if Edge(k,:)==Q

Best Answer

mask = any(Edge,2);
Edge = Edge(mask,:);
or
mask = ~any(Edge,2);
Edge(mask,:) = [];
or
for k=51:-1:1
if Edge(k,:)==Q
Edge(k,:)=[];
end
end