Create 9x9 matrix with RANDI between [0,2] with each 0,1, and 2 repeating three times each per column.
15 ビュー (過去 30 日間)
古いコメントを表示
Ryan Graham
2020 年 9 月 23 日
編集済み: Abdolkarim Mohammadi
2020 年 9 月 23 日
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 件のコメント
採用された回答
Abdolkarim Mohammadi
2020 年 9 月 23 日
編集済み: Abdolkarim Mohammadi
2020 年 9 月 23 日
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 件のコメント
Abdolkarim Mohammadi
2020 年 9 月 23 日
編集済み: Abdolkarim Mohammadi
2020 年 9 月 23 日
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.
その他の回答 (1 件)
Bruno Luong
2020 年 9 月 23 日
編集済み: Bruno Luong
2020 年 9 月 23 日
[~,A] = sort(rand(9)); A = mod(A,3)
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!