How to randomise numbers in a vector?
24 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Jan
le 17 Déc 2016
Modifié(e) : Jan
le 17 Déc 2016
5 commentaires
Bianca Elena Ivanof
le 18 Déc 2016
Modifié(e) : Bianca Elena Ivanof
le 18 Déc 2016
Plus de réponses (1)
Andrei Bobrov
le 17 Déc 2016
Modifié(e) : Andrei Bobrov
le 17 Déc 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 commentaires
Jan
le 18 Déc 2016
Modifié(e) : Jan
le 18 Déc 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.
Voir également
Catégories
En savoir plus sur Colormaps dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!