store values in array in nested for loop

1 view (last 30 days)
ss=1;
for i = 1:2
for j = 1:5
T = norm(r2(j,:)-r1(i,5:end)); % reading 2 excel files and r2 and r1 are rows
RS(ss) = T
ss = ss + 1;
end
[r,c]=min(RS)
clearvars RS
end
end
As i run the code I got this result after 1 iteration
RS =
613.3480 566.6174 614.9722 644.0272 627.2652
r =
566.6174
c =
2
but as i=2 it displays
RS =
0 0 0 0 0 602.8387 522.1276 605.9619 535.2905 468.5696
r =
0
c =
1
I want to know the min value from RS at each iteration and i want to have
RS =
602.8387 522.1276 605.9619 535.2905 468.5696
with no zeros in my array,so that i get the correct min value. Thankx

Accepted Answer

Roger Stafford
Roger Stafford on 13 Sep 2014
To get the correct minimum values, replace "clearvars RS" with "ss=1;".
If you want to retain a record of these two minimums and their indices, you need to store them in arrays at the end of each of the two passes in the outer for-loop.
  1 Comment
Muhammad Usman
Muhammad Usman on 14 Sep 2014
Thankyou so much, i am very grateful for you. your solution works for me

Sign in to comment.

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 13 Sep 2014
Edited: Andrei Bobrov on 13 Sep 2014
[r,c] = min(squeeze(sqrt(...
sum(bsxfun(@minus,r2(1:5,:),permute(r1(1:2,5:end),[3 2 1])).^2,2))));

Community Treasure Hunt

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

Start Hunting!