How to cluster 1D array so that approximately equal values are replaced by their average?
3 ビュー (過去 30 日間)
古いコメントを表示
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?
0 件のコメント
採用された回答
Walter Roberson
2021 年 4 月 9 日
[~, ~, G] = uniquetol(xx);
xxmean = grpstats(xx, G, 'mean');
3 件のコメント
Walter Roberson
2021 年 4 月 9 日
Statistics and Machine Learning Toolbox.
You can instead use
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].'
[~, ~, G] = uniquetol(xx, 1e-4);
xxmean = accumarray(G, xx, [], @mean)
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!