I would like to identify the row indices of two minimum values in a cell array, containing data Zi. Searching for a single value is simple (see below) but how to I search for the minimum and the closest value to that minimum?
minimum value search:
c=find(min(Z)==Z); %find indices
|
|
0
|
|
|
|
Reply
|
Daniel
|
11/17/2009 2:50:06 PM |
|
"Daniel " <elefant2_2000@yahoo.de> wrote in message <hdud6u$dpn$1@fred.mathworks.com>...
> I would like to identify the row indices of two minimum values in a cell array, containing data Zi. Searching for a single value is simple (see below) but how to I search for the minimum and the closest value to that minimum?
>
> minimum value search:
> c=find(min(Z)==Z); %find indices
How about:
copyZ = Z;
c =find(min(Z)==Z);
copyZ(c) = NaN;
c2=find(min(copyZ)==copyZ);
or
s = unique(sort(Z));
c =find(s(1)==Z);
c2= find(s(2)==Z);
|
|
0
|
|
|
|
Reply
|
Matthew
|
11/17/2009 6:57:03 PM
|
|
"Matthew Whitaker" <mattlwhitaker@REMOVEgmail.com> wrote in message <hdurlv$372$1@fred.mathworks.com>...
> "Daniel " <elefant2_2000@yahoo.de> wrote in message <hdud6u$dpn$1@fred.mathworks.com>...
> > I would like to identify the row indices of two minimum values in a cell array, containing data Zi. Searching for a single value is simple (see below) but how to I search for the minimum and the closest value to that minimum?
> >
> > minimum value search:
> > c=find(min(Z)==Z); %find indices
>
> How about:
> copyZ = Z;
> c =find(min(Z)==Z);
> copyZ(c) = NaN;
> c2=find(min(copyZ)==copyZ);
>
> or
> s = unique(sort(Z));
> c =find(s(1)==Z);
> c2= find(s(2)==Z);
Of course if you don't need the indices separated the 2nd solution could be written as:
s = unique(sort(Z));
c =find(Z <= s(2));
|
|
0
|
|
|
|
Reply
|
Matthew
|
11/17/2009 7:43:03 PM
|
|