choose elements from array randomly
Afficher commentaires plus anciens
Hi everyone
I have vector array of elements …
for example a=[1,2,3,4]
how can I choose randomly 10% of the above array????
Help me please
majid
Réponse acceptée
Plus de réponses (2)
Azzi Abdelmalek
le 23 Sep 2012
Modifié(e) : Azzi Abdelmalek
le 23 Sep 2012
a=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17]
n=length(a)
nr=round(n/10)
out=a(randperm(n,nr))
or if you have'nt randperm
n=length(a);
nr=round(n/10)
[ ~,idx]=sort(rand(n,1));
out=a(idx(1:nr))
1 commentaire
Azzi Abdelmalek
le 23 Sep 2012
Depends on how you want to round your percentage use, round or ceil or floor
Wayne King
le 23 Sep 2012
Modifié(e) : Wayne King
le 23 Sep 2012
One thing you can do is:
% create vector
a = randn(100,1);
% determine how many elements is ten percent
numelements = round(0.1*length(a));
% get the randomly-selected indices
indices = randperm(length(a),numelements);
% choose the subset of a you want
b = a(indices);
2 commentaires
Majid Al-Sirafi
le 23 Sep 2012
Wayne King
le 23 Sep 2012
See my answer below for a use of randperm compatible with earlier versions of MATLAB
Catégories
En savoir plus sur Get Started with MATLAB dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!