How to get arg min of an N-dimensional Matrix ?

22 views (last 30 days)
Hi, i'm having an image of size[280,307,191] and i want to get the argmin of it,Any help?

Accepted Answer

James Tursa
James Tursa on 15 Apr 2013
Edited: James Tursa on 15 Apr 2013
[m n] = min(M(:));
[x y z] = ind2sub(size(M),n);
x, y, z will be the indexes (i.e., argmin) of the minimum value of your 3D array M.
  2 Comments
Jan
Jan on 16 Apr 2013
The documentation of min explains this exhaustively already. Type this in Matlab's command window:
help min
doc min
and read it.

Sign in to comment.

More Answers (3)

Cedric
Cedric on 15 Apr 2013
How do you define argmin? If it is the global min, you can get it as follows:
min(M(:))
where M is your 3D array.
  4 Comments
Sreeda M A
Sreeda M A on 13 Jul 2016
can you please explain what values should I give for M ??
Andrei Bobrov
Andrei Bobrov on 13 Jul 2016
Edited: Andrei Bobrov on 13 Jul 2016
Hi Sreeda M A! Example:
M = randi(400,280,307,191);

Sign in to comment.


Sean de Wolski
Sean de Wolski on 15 Apr 2013
Or:
min(min(min(M)))
  2 Comments
Ties Hendrickx
Ties Hendrickx on 29 Apr 2019
Nope, this will return the minimum value and not the index of the minimum value
Cedric
Cedric on 30 Apr 2019
Just use [~,linIdx] = min(M(:)) and then convert to subscripts using IND2SUB.

Sign in to comment.


Steven Lord
Steven Lord on 30 Apr 2019
If you're using release R2019a or later, you probably want to call min with the 'all' dimension input and the 'linear' flag.

Categories

Find more on Convert Image Type 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!