apply the min index to an array of the same size

2 vues (au cours des 30 derniers jours)
hamed amini
hamed amini le 16 Avr 2017
Commenté : hamed amini le 16 Avr 2017
A and B are arrays with the same size. e.g.
>> size(A) = [2,4,3,5]; % A is a 4 dimensional matrix
>> size(B) = [2,4,3,5]; % B has the same size as A
>> [minA, minAind] = min(A,[ ],4);
size(minA) = [2,4,3]; %min will reduce one of the dimensions
How to extract the elements in B with the same index as minAind?

Réponse acceptée

hamed amini
hamed amini le 16 Avr 2017
I found the answer; here is an example when the min is applied along the 3rd dimension:
>> a=rand(2,3,4,5);
>> [amin, aind] = min(a,[],3);
>> [a1,a2,a4]= ndgrid([1:size(a,1)],[1:size(a,2)],[1:size(a,4)]);
>> allind = sub2ind(size(a), a1, a2,squeeze(aind), a4);
>> a(allind)-amin % ==> this would be all zeros, i.e. allind is the right index.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by