minimum value array issue

3 views (last 30 days)
aya
aya on 5 Sep 2014
Commented: aya on 5 Sep 2014
I am using the following code line to get the minimum value of the matrix dn and the corresponding index of the minimum value
[TransmiterNode,ind]=min(dn(:));
what I want to do is on the next run of this code line I do not want the old minimum value to be considered
  2 Comments
per isakson
per isakson on 5 Sep 2014
Please elaborate a bit. Possibly provide a small example.
aya
aya on 5 Sep 2014
let's say dn=[2 5 8 7 0 1] for the first iteration the result of [TransmiterNode,ind]=min(dn(:)); would be TransmiterNode=0 -----> the value ind=5 ---------> the index
for the next iteration I want the next minimum value without considering the previous one

Sign in to comment.

Accepted Answer

Guillaume
Guillaume on 5 Sep 2014
If you know that all the values in dn are different:
%init
ind = [];
%for ...
dntemp = dn;
dntemp(ind) = [];
[TransmiterNode,ind]=min(dntemp(:));
%...
%end
If not:
%init
%TransmiterNode = NaN; %or any other unused value in dn
%for ...
dntemp = dn;
dntemp(find(TransmiterNode)) = [];
[TransmiterNode,ind]=min(dntemp(:));
%...
%end
  1 Comment
aya
aya on 5 Sep 2014
thank you it's worked just I want it to

Sign in to comment.

More Answers (2)

per isakson
per isakson on 5 Sep 2014
Edited: per isakson on 5 Sep 2014
Another approach, try
dn = [2 5 8 7 0 1];
[ dn_sorted, ix ] = sort( dn, 'ascend' );
ix contains the "positions" of the values in the original vector, dn
  1 Comment
aya
aya on 5 Sep 2014
its a good idea but it does not effective for may program

Sign in to comment.


Rushikesh Tade
Rushikesh Tade on 5 Sep 2014
Edited: Rushikesh Tade on 5 Sep 2014
If removing of values is allowed :
[TransmiterNode,ind]=min(dn(:));
dn(ind)=[];

Categories

Find more on Matrices and Arrays 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!