Could you please check my code?
Show older comments
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
3 Comments
Star Strider
on 29 Jun 2019
Your posted code runs for me without error (R2019a).
hrushikesh kyathari
on 29 Jun 2019
Edited: hrushikesh kyathari
on 29 Jun 2019
the cyclist
on 29 Jun 2019
I have run your code repeatedly, and get no error.
Do you have the problem on a fresh restart of MATLAB?
Accepted Answer
More Answers (0)
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!