Select groups of data with a specific size
1 回表示 (過去 30 日間)
古いコメントを表示
Maria Granell Ruiz
2019 年 3 月 18 日
コメント済み: Maria Granell Ruiz
2019 年 3 月 18 日
Dear all,
Imagine you have a matrix with three colums, the first one is a grouping variable and the other two are coordinates (xy).
The grouping variable looks like this
A = [1 1 1 1 2 2 2 3 3 3 3]';
In this way i have four coordinates in the group 1, three coordinates in the group 2 and four in the group 3. I would like to exclude the groups that do not have 4 data points, i.e., more or less than 4 (in this case group 2).
0 件のコメント
採用された回答
Guillaume
2019 年 3 月 18 日
Simply build the histogram of your groups (with histcounts or accumarray) and select the groups you want to keep with ismember:
demodata = [[1 1 1 1 2 2 2 3 3 3 3]', randi(100, 11, 2)]
[group, ~, groupid] = unique(demodata(:, 1));
groupcount = accumarray(groupid, 1); %histogram of groups
keptdata = demodata(ismember(demodata(:, 1), group(groupcount == 4)), :)
その他の回答 (1 件)
KSSV
2019 年 3 月 18 日
Let x,y be your data points
A = [1 1 1 1 2 2 2 3 3 3 3]';
for i = 1:max(X)
idx = A==i ;
if nnz(idx)<3
plot(x(idx),y(idx),'.')
end
end
参考
カテゴリ
Help Center および File Exchange で Histograms についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!