# Repeating Values List Problemc

2 views (last 30 days)
Maxwell Barton on 20 Dec 2019
Commented: Maxwell Barton on 20 Dec 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];

Stephen23 on 20 Dec 2019
Edited: Stephen23 on 20 Dec 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
Maxwell Barton on 20 Dec 2019
Thanks a lot mate!

### Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

R2019b

### Community Treasure Hunt

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

Start Hunting!