how would i get a while loop to repeat this code 26 times?

6 views (last 30 days)
shiptext= [22 6;38 21;24 36;2 30;6 2;15 31;22 15;24 15;10 33;29 11;32 15;29 21;31 4;25 27;29 27;10 11;35 17;15 14;22 20;21 29;23 22;3 22;33 9;8 38;10 4;11 29]
shipnumber= size(shiptext,1)
disp(shipnumber)
plot(shiptext(:,1),shiptext(:,2),'.');
idr1=randi(26,1,1);
row1=shiptext(idr1,:);
idr2=randi(26,1,1);
row2=shiptext(idr2,:);
a=row2-row1
xdistance=a(1)
ydistance=a(2)
distance=sqrt(((xdistance)^2)+((ydistance)^2));
disp(distance)
  2 Comments
Ameer Hamza
Ameer Hamza on 15 Mar 2020
What do you want to repeat 26 times? You can repeat a piece of code 26 times using for loop.
for i=1:26
% your code
end
Josh Williams
Josh Williams on 15 Mar 2020
I need the code to run 26 times to give me 26 answers for distance at the end (each time generating a different random matrix) however im only allowed to use while loops.

Sign in to comment.

Accepted Answer

Sriram Tadavarty
Sriram Tadavarty on 15 Mar 2020
Hi Josh,
You can do the following
i = 1; % loop index
while i <= 26
shiptext= [22 6;38 21;24 36;2 30;6 2;15 31;22 15;24 15;10 33;29 11;32 15;29 21;31 4;25 27;29 27;10 11;35 17;15 14;22 20;21 29;23 22;3 22;33 9;8 38;10 4;11 29]
shipnumber= size(shiptext,1)
disp(shipnumber)
plot(shiptext(:,1),shiptext(:,2),'.');
idr1=randi(26,1,1);
row1=shiptext(idr1,:);
idr2=randi(26,1,1);
row2=shiptext(idr2,:);
a=row2-row1
xdistance=a(1)
ydistance=a(2)
distance(i)=sqrt(((xdistance)^2)+((ydistance)^2)); % Stores distance for each loop index
%disp(distance)
i = i+1;
end
disp (distance)
This should do what you have asked for.
Regards,
Sriram

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!