Change index of element in matrix with constraint
Afficher commentaires plus anciens
Hi all!
i have i binary matrix A(180,60), in each column i have 3 "ones" and only "one" by row,the sum of each row equal to 1.
i used this , but i had 3 "ones" in the 3 successive rows. How can i change the index of "1"?
M = 180; N =60;
k = 3;
C = repelem(eye(N), k, 1);
NEED URGENT HELP !
1 commentaire
Riccardo Spica
le 22 Août 2022
Hi,
does this work?
N =60;
k = 3;
C = eye(N);
C = C(repelem(1:N,1,k),:);
Réponses (1)
A = repmat(eye(6), 3, 1) % change 6 to 60
% if you need random permutation
B = A(randperm(6*3), :)
7 commentaires
Ideth Kara
le 22 Août 2022
Chunru
le 22 Août 2022
Then "A" in above code always satisfies your requirement (since no 3 "ones" in the 3 successive rows). Or do you also have other requirements?
Ideth Kara
le 22 Août 2022
Ideth Kara
le 22 Août 2022
Chunru
le 22 Août 2022
I could not understand your requirements:
"i need 3 'ones' in the 3 successive rows but with different position. as condition , after the 3 rows , the rest os first column will be "zero", after the next 3 rows , the rest of second column "zero",..."
Ideth Kara
le 22 Août 2022
Catégories
En savoir plus sur Matrix Indexing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!