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?
No products are associated with this question.
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,:) ;
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);
If this must be fast, use the C-Mex FEX: Shuffle.
index = Shuffle(10000, 'index', 500)
Play games and win prizes!Learn more