MATLAB Answers

how to find min or max value in each row of a matrix and its index, if a matrix is 3x2 it will find the min in first row

1,345 views (last 30 days)
R= [27 25 21; 35 38 37; 42 47 49]; 1st min value will be 21

  0 Comments

Sign in to comment.

Accepted Answer

Mischa Kim
Mischa Kim on 7 Nov 2017
Edited: Mischa Kim on 7 Nov 2017
Use
[val,loc] = min(R')
val =
21 35 42 % min value in each row
loc =
3 1 1 % column location of min value

  4 Comments

Show 1 older comment
Mischa Kim
Mischa Kim on 7 Nov 2017
[val,loc] = min(R(1,:)) % min value in 1st row
val =
21
loc =
3
Replace the "1" in the min command by a running index to step through each row, e.g., using a loop.
Fahim MUMAND
Fahim MUMAND on 14 Oct 2019
suppose a matrix R = ones(4,4)
Every element is maximum and minimum, how to extract their indices?
How to extract the indices of max or min if there are more than 1 in col and in row?

Sign in to comment.

More Answers (1)

Ariunbolor Purvee
Ariunbolor Purvee on 6 Aug 2020
Edited: Ariunbolor Purvee on 6 Aug 2020
absDiff=[1 2 3; 4 5 6; 7 8 9; 9 10 12];
MaxMinAveRow= MaxMinAveOfRow(absDiff);
display(MaxMinAveRow);
function MaxMinAveRow= MaxMinAveOfRow(absDiff)
n=length(absDiff);
maxRow=zeros(n,1);
minRow=zeros(n,1);
aveRow=zeros(n,1);
sum=0;
for i=1:n
maxRow(i)=sum+max(absDiff(i,:));% max of row
minRow(i)=sum+min(absDiff(i,:));% min of row
aveRow(i)=sum+mean(absDiff(i,:));% average of row
end
MaxMinAveRow=[ maxRow,minRow, aveRow ];
end
The result on Command Window
MaxMinAveRow =
3.0000 1.0000 2.0000
6.0000 4.0000 5.0000
9.0000 7.0000 8.0000
12.0000 9.0000 10.3333

Tags

Community Treasure Hunt

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

Start Hunting!