How to randomise numbers in a vector?
24 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Dear all,
Suppose I have this vector x= [1;2;3;4];
How can I randomise it? (i.e. create different combinations of 1, 2, 3 and 4)
Thank you very much in advance, Bianca
0 Commenti
Risposta accettata
Jan
il 17 Dic 2016
Modificato: Jan
il 17 Dic 2016
5 Commenti
Bianca Elena Ivanof
il 18 Dic 2016
Modificato: Bianca Elena Ivanof
il 18 Dic 2016
Più risposte (1)
Andrei Bobrov
il 17 Dic 2016
Modificato: Andrei Bobrov
il 17 Dic 2016
Hi Elena!
One way:
x= [1 1; 1 2; 1 3; 1 4]
[~,ii] = sort(rand(size(x,1),1));
out = x(ii,:);
or just
out = x(randperm(size(x,1)),:);
2 Commenti
Jan
il 18 Dic 2016
Modificato: Jan
il 18 Dic 2016
randperm uses the Fisher-Yates shuffle now (as FEX: Shuffle), which is more accurate than SORT(RAND). The later is a stable sort, so if two elements replied by RAND are equal (unlikely, but not impossible) the sorting order is not random. If you e.g. have to shuffle a vector of 2^52 elements, uuhm, well... Who cares.
Vedere anche
Categorie
Scopri di più su Colormaps in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!