Indices of a maximum value in a multidimensional matrix.

Hi, I have a multidimensional matrix of size (100,16,4,10) and i want to calculate all the 4 indices of the max value in it? Any help please.

 Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 25 Juil 2016
Modifié(e) : Azzi Abdelmalek le 25 Juil 2016
a=rand(100,16,4,10); %Example
[max_value,idx]=max(a(:))
[x,y,z,w]=ind2sub(size(a),idx)
If the dimension of a is unknown
a=rand(100,16,4,10);
[max_value,idx]=max(a(:))
x=cell(ndims(a),1)
[x{:}]=ind2sub(size(a),idx)

3 commentaires

Hi, Thank you for this working example. So, if i'm interesting in a max value of a particular slice (in this case 25) of it then it doesn't return the correct result. The way, i am trying is like this.
a=rand(100,16,4,10);
[max_value,idx]=max(a(25,:,:,:));
[w,x,y,z]=ind2sub(size(a),idx);
use
b = squeeze(a(25,:,:,:));
and compute x, y, z from b; w is 25 by definition.
Thank you. works like a charm.

Connectez-vous pour commenter.

Plus de réponses (1)

Adam
Adam le 25 Juil 2016
Modifié(e) : Adam le 25 Juil 2016
[maxVal, idx] = max( myMatrix(:) );
[x, y, z, w] = ind2sub( size( myMatrix ), idx );

Catégories

En savoir plus sur MATLAB dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by