how to get the min in an array and return its position?

I want to check the min in a matrix and return its position, Ex. x=[1 3 1 1], the code will check the min which is '1' and return its position (number of columns), Y=[1 3 4]
Any hint?

Answers (2)

>> x = [1,3,1,1];
>> minval = min(x)
minval = 1
>> idx = find(x==minval)
idx =
1 3 4
This kind of basic MATLAB usage is covered very well in the introductory tutorials:

2 Comments

Great. what about if I just to return one minimum?
So in my example, I want the result to be Y=[1] which is the column position of first minimum,
[minval,idx] = min(x)

Sign in to comment.

For one (or the first) minimum, use the min function with two outputs:
x=[1 3 1 1];
[xmin,idx] = min(x)
xmin =
1
idx =
1
The first output is the value of the minimum, the second is the first occurrence of the minimum in the vector.

Categories

Asked:

on 23 Sep 2016

Edited:

on 23 Sep 2016

Community Treasure Hunt

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

Start Hunting!