How can I select randomly?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello, I have an 10000 rows and 10 columns matrix. I want to select randomly 500 rows from this matrix. I want to ask you, randperm function is true for this purpose. How can I select 500 rows randomly from this matrix?
0 Kommentare
Akzeptierte Antwort
Jos (10584)
am 12 Dez. 2012
Random can be defined in two ways:
% A is your original matrix
Nrows = size(A,1) ; % number of rows
% Option 1: randomly select 500 UNIQUE(!) rows
idx = randperm(Nrows) ;
idx = idx(1:500) ;
% Option 2: randomly select 500 rows
idx = randi(Nrows,[Nrows 1]) ;
% and then ...
B = A(idx,:) ;
2 Kommentare
Weitere Antworten (1)
Jan
am 12 Dez. 2012
Bearbeitet: Jan
am 12 Dez. 2012
M = rand(10000, 10);
index = randperm(10000, 500); % In modern Matlab versions
R = M(index, :);
In older Matlab versions randperm does not accept a 2nd input. Then:
index = randperm(10000);
index = index(1:500);
index = Shuffle(10000, 'index', 500)
7 Kommentare
Matt Fig
am 14 Dez. 2012
Apparently saying, "M is your original matrix" would have made all the difference ;-).
Siehe auch
Kategorien
Mehr zu Logical 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!