How to find minimum or maximum value

27 次查看(过去 30 天)
sese
sese 2012-8-28
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.

回答(3 个)

Junaid
Junaid 2012-8-28
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 个评论
sese
sese 2012-8-28
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

请先登录,再进行评论。


Image Analyst
Image Analyst 2012-8-28
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 个评论
sese
sese 2012-8-28
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 2012-8-28
OK, that's fine. So you're all set.

请先登录,再进行评论。


AlgoBuilder
AlgoBuilder 2014-5-2
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 个评论
Image Analyst
Image Analyst 2014-5-2
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 2014-5-8
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by