How to find minimum or maximum value

20 views (last 30 days)
sese
sese on 28 Aug 2012
Commented: AlgoBuilder on 8 May 2014
Hello guy's
I have three matrix's as bellow
I need your help please to get any method to find the minimum value (only one point ) with respect of all matrix's
Please Note: in these matrix's the lowest value for all matrix is x2y2.

Answers (3)

Junaid
Junaid on 28 Aug 2012
min (matrix) return the minimum. If you have more then one matrix with different dimensions then you can do it like this.
Lets assume you have three A, B, and C;
then
min([A(:); B(:); C(:)])
for example
A = magic(5);
B = magic(2);
C = magic(10);
min([A(:); B(:); C(:)])
  6 Comments
sese
sese on 28 Aug 2012
Thanks alot junaid and image analyst about your explanation, However what i need is NOT to get the minimum value within all matrix's. this is my idea and what i want.
the tree matrix's related to the rainfall rate for my city in 3 years, each year has a matrix, and each value in the matrix represent different street. i want to find the street who has a minimum rainfall rate in the three years. tnx alot

Sign in to comment.


Image Analyst
Image Analyst on 28 Aug 2012
You need to find the min of A, B, and C (year1, year2, and year3 matrices) separately. (Untested code)
minA = min(A(:));
minB = min(B(:));
minC = min(C(:));
Then see which is smallest.
minOverall = min([minA minB minC]);
Then find out where that value occurs in the various matrix(es):
[rowA colA] = find(A == minOverall);
[rowB colB] = find(B == minOverall);
[rowC colC] = find(C == minOverall);
The lowest overall value may occur in more than one location or matrix if you're dealing with integers.
  2 Comments
sese
sese on 28 Aug 2012
tnx Image analyst for your help. but if i found the min of A, B, and C Then i got which is smallest BUT No value occurs in the various matrix(es) more than one time??
TQ
Image Analyst
Image Analyst on 28 Aug 2012
OK, that's fine. So you're all set.

Sign in to comment.


AlgoBuilder
AlgoBuilder on 2 May 2014
sese,
If you have a 2D matrix of data (ex: P), you can find the min/max of the entire matrix in one line as follows: min(min(P)) max(max(P))
For a 3D matrix/image or other data, you can do the same as:
min(min(min(P))) max(max(max(P)))
Image Analyst, If you think this is in anyway not accurate or computationally expensive, please let us know.
  2 Comments
Image Analyst
Image Analyst on 2 May 2014
Well sese has 3 matrices so that's why I gave the answer I did. If he/she did have a 2D matrix, then you could do
minP = min(P(:));
maxP = max(P(:));
which is more along the lines of what I did in my answer. That's what I'd do, and I think most experienced MATLAB-ers would do, since it works for any dimension array and you don't have to worry about it, like you did in your solution. Your solution will work though if you know in advance what dimensions your array is.
AlgoBuilder
AlgoBuilder on 8 May 2014
Image Analyst, I totally agree with you.
When I code, I try to write it as possible to the explanation in my head. But there are more efficient ways of doing the same task, like you mentioned above. I need to practise more.
For the same reasons, I also have a difficult time vectorizing code.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!