Azzera filtri
Azzera filtri

Repeating Values List Problemc

2 visualizzazioni (ultimi 30 giorni)
Maxwell Barton
Maxwell Barton il 20 Dic 2019
Commentato: Maxwell Barton il 20 Dic 2019
I have two lists ix and iy, an example of which is shown below. I want to match any repeating values of ix with the corresponding points of iy and then average the points in iy. For example, [4 5 6] in iy all match with 12 in ix, so I would want to average [4,5,6] = 5, and replace all the duplicate 12s in ix with just a single 12, and replace [4 5 6] with 5. Is there a simple way to do this in MATLAB?
ix = [10 11 12 12 12]; iy = [2 3 4 5 6];
ixnew = [10 11 12]; iynew = [2 3 5];

Risposta accettata

Stephen23
Stephen23 il 20 Dic 2019
Modificato: Stephen23 il 20 Dic 2019
>> ix = [10,11,12,12,12];
>> iy = [2,3,4,5,6];
>> [ixnew,~,idx] = unique(ix(:),'stable');
>> iynew = accumarray(idx(:),iy(:),[],@mean)
iynew =
2
3
5
>> ixnew
ixnew =
10
11
12

Più risposte (0)

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Tag

Prodotti


Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by