How replace the duplicated row by the mean
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mekala balaji
el 18 de Sept. de 2017
Comentada: Mekala balaji
el 20 de Sept. de 2017
Hi,
I have below data:
1.3
1.5
1.6
1.7
1.7
2.2
2.8
2.8
I want to find the row index of duplicate values (row4 & row5, row row7& row8) and replace these row by mean 1. row4&row5 replace by the average of them, similarly row7&row8
the final output is:
1.3
1.5
1.6
1.7
2.2
2.8
Respuesta aceptada
Guillaume
el 18 de Sept. de 2017
Assuming that there is more to your question, and that your input is actually a matrix where one of the column has got the indexing values you mention:
[~, ~, group] = unique(yourmatrix(:, idcolumn), 'stable');
newmatrix = splitapply(@(rows) mean(rows, 1), yourmatrix, group)
9 comentarios
Guillaume
el 20 de Sept. de 2017
Looks like unique didn't have the 'stable' option in 2010. Just remove it. The only difference is that your output matrix will be sorted according to your ID column. If that column is already sorted, it makes no difference.
Más respuestas (1)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!