Repeating Values List Problemc

1 visualización (últimos 30 días)
Maxwell Barton
Maxwell Barton el 20 de Dic. de 2019
Comentada: Maxwell Barton el 20 de Dic. de 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];

Respuesta aceptada

Stephen23
Stephen23 el 20 de Dic. de 2019
Editada: Stephen23 el 20 de Dic. de 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

Más respuestas (0)

Categorías

Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by