targeting a single piece of data from an array

1 view (last 30 days)
I have an array of values, 5 columns, 30 rows. Trying to get a min and max from the array, but all that gets returned is the whole row of data, being the row with the lowest values, and the row with the highest values. what i need is the single lowest value and single highest value.
Thanks.

Answers (2)

Andrei Bobrov
Andrei Bobrov on 27 Feb 2013
[z,ii] = min(x(:));
[rws,cls] = ind2sub(size(x),ii);

Honglei Chen
Honglei Chen on 27 Feb 2013
min(min(x))
and
max(max(x))
Or
min(x(:))
and
max(x(:))
  2 Comments
Tyler
Tyler on 27 Feb 2013
that worked great, is there anyway to also denote which row this came from?
like if the columns were years and the rows were weeks, so it would show that it came from row 5 (meaning the 5th week)?
Honglei Chen
Honglei Chen on 27 Feb 2013
There are two ways to do this. One way is to do as @Andrei showed above, or you can do this in two steps as I show below
[temp,weekidx] = min(x);
[y,minYear] = min(temp);
minWeek = weekidx(minYear)

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!