How to find minimum or maximum value

13 visualizaciones (últimos 30 días)
sese
sese el 28 de Ag. de 2012
Comentada: AlgoBuilder el 8 de Mayo de 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.

Respuestas (3)

Junaid
Junaid el 28 de Ag. de 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 comentarios
sese
sese el 28 de Ag. de 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 el 28 de Ag. de 2012
As in min(A+B+C) ?

Iniciar sesión para comentar.


Image Analyst
Image Analyst el 28 de Ag. de 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 comentarios
sese
sese el 28 de Ag. de 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 el 28 de Ag. de 2012
OK, that's fine. So you're all set.

Iniciar sesión para comentar.


AlgoBuilder
AlgoBuilder el 2 de Mayo de 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 comentarios
Image Analyst
Image Analyst el 2 de Mayo de 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 el 8 de Mayo de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Image Processing Toolbox en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by