choose elements from array randomly
28 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
0 Kommentare
Akzeptierte Antwort
Wayne King
am 23 Sep. 2012
You must be using an older version of MATLAB, do this instead:
% 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));
indices = indices(1:numelements);
% choose the subset of a you want
b = a(indices);
Weitere Antworten (2)
Azzi Abdelmalek
am 23 Sep. 2012
Bearbeitet: Azzi Abdelmalek
am 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 Kommentar
Azzi Abdelmalek
am 23 Sep. 2012
Depends on how you want to round your percentage use, round or ceil or floor
Wayne King
am 23 Sep. 2012
Bearbeitet: Wayne King
am 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 Kommentare
Wayne King
am 23 Sep. 2012
See my answer below for a use of randperm compatible with earlier versions of MATLAB
Siehe auch
Kategorien
Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!