I am trying to find the minimum of vector y=[ 1 2 4 3 9 7] which corresponds to vector x= [100 100 200 200 300 300] so that the result is z=[1 3 7]
what I need is the minimum of each unique x value.

 Réponse acceptée

Stephen23
Stephen23 le 9 Mar 2016
Modifié(e) : Stephen23 le 9 Mar 2016

0 votes

You can use unique and accumarray:
>> x = [100 100 200 200 300 300];
>> y = [ 1 2 4 3 9 7];
>> [~,~,ic] = unique(x,'stable');
>> z = accumarray(ic(:),y,[],@min)
z =
1
3
7

Plus de réponses (2)

Andrei Bobrov
Andrei Bobrov le 9 Mar 2016

0 votes

[~,~,c] = unique(x);
z = accumarray(c(:),y(:),[],@min);
Blotter678
Blotter678 le 9 Mar 2016

0 votes

that worked great, Thanks guys!

Catégories

En savoir plus sur Get Started with 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