matrix with different randperm rows

28 vues (au cours des 30 derniers jours)
Jeremy
Jeremy le 17 Sep 2014
Commenté : Jeremy le 18 Sep 2014
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

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 17 Sep 2014
Modifié(e) : Andrei Bobrov le 17 Sep 2014
[~, out] = sort(rand(M,N),2);
  3 commentaires
Mikhail
Mikhail le 18 Sep 2014
Apparently, not-))
Jeremy
Jeremy le 18 Sep 2014
Works orders of magnitude faster for large group sizes :)

Connectez-vous pour commenter.

Plus de réponses (3)

Guillaume
Guillaume le 17 Sep 2014
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
Mikhail le 17 Sep 2014
  4 commentaires
Image Analyst
Image Analyst le 17 Sep 2014
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
Jeremy le 17 Sep 2014
100 is large when you talk about some types of group coordination. I need to select k individuals from a group of N to interact at different time steps. What I've been doing is generating all combinations and randomly selecting ones to fill an interaction matrix, but that combination matrix gets big fast.

Connectez-vous pour commenter.


Joseph Cheng
Joseph Cheng le 17 Sep 2014
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 commentaire
Joseph Cheng
Joseph Cheng le 17 Sep 2014
Modifié(e) : Joseph Cheng le 17 Sep 2014
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).

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by