minimum value array issue

조회 수: 3 (최근 30일)
aya
aya 2014년 9월 5일
댓글: aya 2014년 9월 5일
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
per isakson
per isakson 2014년 9월 5일
Please elaborate a bit. Possibly provide a small example.
aya
aya 2014년 9월 5일
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

댓글을 달려면 로그인하십시오.

채택된 답변

Guillaume
Guillaume 2014년 9월 5일
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
aya
aya 2014년 9월 5일
thank you it's worked just I want it to

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

per isakson
per isakson 2014년 9월 5일
편집: per isakson 2014년 9월 5일
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
aya
aya 2014년 9월 5일
its a good idea but it does not effective for may program

댓글을 달려면 로그인하십시오.


Rushikesh Tade
Rushikesh Tade 2014년 9월 5일
편집: Rushikesh Tade 2014년 9월 5일
If removing of values is allowed :
[TransmiterNode,ind]=min(dn(:));
dn(ind)=[];

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by