matrix with different randperm rows
古いコメントを表示
Hi,
Say I have vector of N integers, 1 through N. Is there a quick way, without loops, to create a matrix where each row is a different randperm of the vector? My N can get large (up to 100).
Thanks
採用された回答
その他の回答 (3 件)
Guillaume
2014 年 9 月 17 日
cell2mat(arrayfun(@(dummy) randperm(n), 1:m, 'UniformOutput', false)');
Whether or not that can be said to be without a loop is debatable as arrayfun is effectively looping over the array 1:m
Mikhail
2014 年 9 月 17 日
0 投票
4 件のコメント
Mikhail
2014 年 9 月 17 日
You originally wrote different permutation. Use randperm function for your programm. I don't know how do it without loop.
Image Analyst
2014 年 9 月 17 日
In what universe, or decade, is 100 considered large? You actually mean 100, right, like ten times ten, not 100 million or 100 billion or something?
Jeremy
2014 年 9 月 17 日
Joseph Cheng
2014 年 9 月 17 日
0 投票
Well there is a randperm() function that will give you a random permuation. How to get it as a MxN matrix without a loop will take some more time to think about it.
1 件のコメント
Joseph Cheng
2014 年 9 月 17 日
編集済み: Joseph Cheng
2014 年 9 月 17 日
ok well it is possible to do it without a loop in 2ish lines. Use the function arrayfun() or cellfun() on an array of N*ones(M,1).
カテゴリ
ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!