matrix with different randperm rows
Mostra commenti meno recenti
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
Risposta accettata
Più risposte (3)
Guillaume
il 17 Set 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
il 17 Set 2014
0 voti
4 Commenti
Mikhail
il 17 Set 2014
You originally wrote different permutation. Use randperm function for your programm. I don't know how do it without loop.
Image Analyst
il 17 Set 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
il 17 Set 2014
Joseph Cheng
il 17 Set 2014
0 voti
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 Commento
Joseph Cheng
il 17 Set 2014
Modificato: Joseph Cheng
il 17 Set 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).
Categorie
Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!