how to make a loop for condition?

how to make this more efficient? i've done clustering, so i want to separate them based on their cluster, so i made like this, but if i change the r so the number of their cluster will change, so i want to they loop based on their number of the cluster, i've tried use for, but i didn't found out how to make loop for condition like this
ind1 = idx == 1;
ind2 = idx == 2;
ind3 = idx == 3;
ind4 = idx == 4;
ind5 = idx == 5;
ind6 = idx == 6;
C1_k = datareal(ind1,:);
C2_k = datareal(ind2,:);
C3_k = datareal(ind3,:);
C4_k = datareal(ind4,:);
C5_k = datareal(ind5,:);
C6_k = datareal(ind6,:);

1 Comment

"...i didn't found out how to make loop for condition like this"
Meta-data in variable names indicates that you are doing something wrong.
Copy-and-pasting code like that indicates that you are doing something wrong.
The neat, simple, efficient MATLAB approach is to use indexing with one array.

Sign in to comment.

 Accepted Answer

G = 6 ; % number of cluster
ind = cell(G,1) ;
C = cell(G,1) ;
for i = 1:G
ind{i} = idx == i;
C{i} = dataarea1(idx==i,:) ;
end

1 Comment

aah i see, okaay thanks a lot for your help

Sign in to comment.

More Answers (0)

Categories

Asked:

on 22 Jun 2021

Commented:

on 22 Jun 2021

Community Treasure Hunt

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

Start Hunting!