matrix with different randperm rows
22 ビュー (過去 30 日間)
古いコメントを表示
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
0 件のコメント
採用された回答
Andrei Bobrov
2014 年 9 月 17 日
編集済み: Andrei Bobrov
2014 年 9 月 17 日
[~, out] = sort(rand(M,N),2);
3 件のコメント
その他の回答 (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
0 件のコメント
Mikhail
2014 年 9 月 17 日
4 件のコメント
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?
Joseph Cheng
2014 年 9 月 17 日
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).
参考
カテゴリ
Help Center および File Exchange で Cell Arrays についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!