Finding multiple minimum number in a column and location
Show older comments
Hello, I have a matrix X =
100 14 10 4 10 6
101 2 8 8 12 18
102 8 4 8 18 14
103 2 12 8 8 18
104 5 15 5 5 15
105 8 16 6 4 12
106 7 11 3 9 13
107 16 12 6 8 4
108 12 10 2 10 8
109 6 6 4 14 14
For second column, 2. and 4. rows are 2 and they are the smallest number.. If there is more then one same smallest number how can I find all of them location?
Answers (2)
madhan ravi
on 27 Oct 2018
Edited: madhan ravi
on 27 Oct 2018
a=[ 100 14 10 4 10 6
101 2 8 8 12 18
102 8 4 8 18 14
103 2 12 8 8 18
104 5 15 5 5 15
105 8 16 6 4 12
106 7 11 3 9 13
107 16 12 6 8 4
108 12 10 2 10 8
109 6 6 4 14 14]
id=(min(a))
[idy,idx]=find(ismember(a,id))
location = [idx idy] %idx represent row number and idk column number
3 Comments
Ali Aygün
on 27 Oct 2018
madhan ravi
on 27 Oct 2018
Edited: madhan ravi
on 27 Oct 2018
see edited , each row in location represents position of minimum of each column
Bruno Luong
on 27 Oct 2018
still doesn't work, test with
a = [1 10;
10 20]
It will return the position of lower-left 10, which is not wanted.
Bruno Luong
on 27 Oct 2018
Edited: Bruno Luong
on 27 Oct 2018
X = [...
100 14 10 4 10 6
101 2 8 8 12 18
102 8 4 8 18 14
103 2 12 8 8 18
104 5 15 5 5 15
105 8 16 6 4 12
106 7 11 3 9 13
107 16 12 6 8 4
108 12 10 2 10 8
109 6 6 4 14 14]
[row,col] = find(X == min(X,[],1));
position = [row,col]
>>
1 1
2 2
4 2
3 3
9 4
6 5
8 6
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!