How to find minimum or maximum value

28 vues (au cours des 30 derniers jours)
sese
sese le 28 Août 2012
Commenté : AlgoBuilder le 8 Mai 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.
  1 commentaire
Azzi Abdelmalek
Azzi Abdelmalek le 28 Août 2012
what do you mean?

Connectez-vous pour commenter.

Réponses (3)

Junaid
Junaid le 28 Août 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 commentaires
sese
sese le 28 Août 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
Walter Roberson
Walter Roberson le 28 Août 2012
As in min(A+B+C) ?

Connectez-vous pour commenter.


Image Analyst
Image Analyst le 28 Août 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 commentaires
sese
sese le 28 Août 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 le 28 Août 2012
OK, that's fine. So you're all set.

Connectez-vous pour commenter.


AlgoBuilder
AlgoBuilder le 2 Mai 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 commentaires
Image Analyst
Image Analyst le 2 Mai 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 le 8 Mai 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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by