Matlab 在另一个函数中使用聚类索引

Matlab 在另一个函数中使用聚类索引,matlab,cluster-analysis,Matlab,Cluster Analysis,我在一些数据集500x39矩阵上使用Matlab中的内置函数进行了一些k均值聚类。选择7个集群。发件人: [idx,C]=kmeans(数据),无集群) 我得到了我的聚类索引idx(39x1)和质心位置c(500x7) 然后我想在在线可用的多块PCA函数中使用这个idx输出和我的数据集()。所以只要说我的idx是 idx = 5 4 1 5 7 3 2 6 7 1 3 ... 对于数据集中的每一列。我想把它安排给我 [3,10][7][6,11][2][1,4][8][5,9] 其中,[]

我在一些数据集500x39矩阵上使用Matlab中的内置函数进行了一些k均值聚类。选择7个集群。发件人:

[idx,C]=kmeans(数据),无集群)

我得到了我的聚类索引idx(39x1)和质心位置c(500x7)

然后我想在在线可用的多块PCA函数中使用这个idx输出和我的数据集()。所以只要说我的idx是

idx = 5 4 1 5 7 3 2 6 7 1 3 ... 
对于数据集中的每一列。我想把它安排给我

[3,10][7][6,11][2][1,4][8][5,9]
其中,[]中的每个数字对应于集群数据集中的列
idx

,您可以使用它来确定每个唯一索引的位置

result = accumarray(idx(:), (1:numel(idx)).', [], @(x){x})
基本上,它使用您的
idx
arrray(第一个输入)来“分组”值(与指定为第二个输入的每个值对应的列索引)并对每个组执行一个操作,在本例中,该组只是一个匿名函数,它获取组中的所有值并将它们放入单元格数组中