How to cluster 1D array so that approximately equal values are replaced by their average?

2 views (last 30 days)
I have a 1D array that features "double-counts". I would like to consolidate or cluster the dataset in a way that replaces the double-counts with the average of the two double-counted values. Here's a sample dataset
xx=[185.0712 185.0715 185.5117 186.1008 186.5077 187.1303 187.5037 188.1596 188.1597 188.4993 189.1890 189.4949 190.2185 190.4903 191.2477 191.2480].'
Here's a screenshot where I've circled the relevant entries that are double counts:
Does anyone know how to do this?

Accepted Answer

Walter Roberson
Walter Roberson on 9 Apr 2021
[~, ~, G] = uniquetol(xx);
xxmean = grpstats(xx, G, 'mean');

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!