How can I select randomly?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Jos (10584)
il 12 Dic 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 Commenti
Più risposte (1)
Jan
il 12 Dic 2012
Modificato: Jan
il 12 Dic 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 Commenti
Matt Fig
il 14 Dic 2012
Apparently saying, "M is your original matrix" would have made all the difference ;-).
Vedere anche
Categorie
Scopri di più su Logical 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!