How replace the duplicated row by the mean

4 次查看(过去 30 天)
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
  2 个评论
Guillaume
Guillaume 2017-9-18
The mean of identical values is the same value. So isn't what you're after simply:
unique(yourvector, 'stable')

请先登录,再进行评论。

采纳的回答

Guillaume
Guillaume 2017-9-18
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 个评论
Guillaume
Guillaume 2017-9-20
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.
Mekala balaji
Mekala balaji 2017-9-20
Thanks, Sir, I tried in 2015 version and it works.

请先登录,再进行评论。

更多回答(1 个)

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by