Create 9x9 matrix with RANDI between [0,2] with each 0,1, and 2 repeating three times each per column.
13 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Ryan Graham
le 23 Sep 2020
Modifié(e) : Abdolkarim Mohammadi
le 23 Sep 2020
I'm trying to create a 9x9 matrix with random number generation from 0 to 2 using RANDI:
X = randi([0,2], 9,9)
However, I want to force each of the 9 columns to show an equal distribution of 0's, 1's, and 2's (3 x of each number per column). I'm having difficulty finding a loop that can do this. Any help would be great (very new to this type of MATLAB work).
Thanks.
0 commentaires
Réponse acceptée
Abdolkarim Mohammadi
le 23 Sep 2020
Modifié(e) : Abdolkarim Mohammadi
le 23 Sep 2020
You can first create a vector with the values you need:
Reference = repelem (0:2,3)';
Then you initialize the 9x9 matrix with zeros(), and finally fill in the columns with random permutations of Reference using randperm().
6 commentaires
Abdolkarim Mohammadi
le 23 Sep 2020
Modifié(e) : Abdolkarim Mohammadi
le 23 Sep 2020
Yes. But the number of rows should not change. For example: zeros (9,4). Otherwise, you should update Reference have the same number of elements as the number of rows in M.
Plus de réponses (1)
Bruno Luong
le 23 Sep 2020
Modifié(e) : Bruno Luong
le 23 Sep 2020
[~,A] = sort(rand(9)); A = mod(A,3)
0 commentaires
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!