如果我有一个包含值的数组,[6712, 7023, 7510, 7509, 6718, 7514, 7509, 6247]我想要4组相似的数字,以便输出是4个矩阵:
[6247]
[6712, 6718]
[7023]
[7510, 7509, 7514, 7509]
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳方法是什么?
我相信你要找的术语是聚类.例如,我们可以应用Kmeans算法将数据分组为4个集群:
X = [6712, 7023, 7510, 7509, 6718, 7514, 7509, 6247];
[IDX,C] = kmeans(X, 4, 'EmptyAction','singleton');
G = cell(4,1);
for i=1:4
G{i} = X(IDX==i);
end
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果之一:
>> G{:}
ans =
7510 7509 7514 7509
ans =
7023
ans =
6247
ans =
6712 6718
Run Code Online (Sandbox Code Playgroud)
通常这适用于更多点(也适用于多维数据)