define new variables based on clustering results

1 visualizzazione (ultimi 30 giorni)
Hamed Jalali
Hamed Jalali il 19 Giu 2020
Commentato: Hamed Jalali il 27 Giu 2020
I have some variables, say
X_1, x_2, x_3, x_4, x_5,x_6.
with related matrix of n obeservation X. I have done spectral clustering
idx = spectralcluster(X,k)
to find the clusters of variables. Assume for k=3, the index set is = 2,1,1,3,2,3. Now I want to define new variables
y_1, y_2, y_3 , where y_1={x_2,x_3}, y_2={x_1,x_5}, y_3={x_4,x_6}.
for each clusters. Is there any solution without using for loop.

Risposte (1)

Raunak Gupta
Raunak Gupta il 24 Giu 2020
Hi,
From the example in the question I understand you have matrix with 6 observation, and you are clustering them into 3 groups. The new variables can be assigned by simply indexing matrix X with corresponding value. Below example might help.
% X = [x_1;x_2;x_3;x_4;x_5;x_6];
idx = spectralcluster(X,k);
y_1 = X(idx==1,:);
y_2 = X(idx==2,:);
y_3 = X(idx==3,:);
  1 Commento
Hamed Jalali
Hamed Jalali il 27 Giu 2020
Thanks for your answer. I used the below command:
y_i=X(find(idx==i));
where i is the index of the cluster. It similar to your answer.

Accedi per commentare.

Categorie

Scopri di più su Get Started with MATLAB in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by