How can I randomly select a row from a matrix?
7 views (last 30 days)
Show older comments
I have a matrix (m) that is 17543 x 17. The values are of the type double.
I want to randomly select 1 row from this matrix and save it as a new vector.
I tried this:
mrow = m(randsample(m:17543,1),:)
This works if the values are integers but it does not work because they are doubles.
It returns the error message:
"Subscript indices must either be real positive integers or logicals."
Any help would be really appreciated.
Thanks,
Graeme
1 Comment
chaitra kn
on 17 Aug 2019
this is for to select only first row,how can i select more than one random rows in two 2 matrix.
please help me out
Accepted Answer
More Answers (2)
Jonathan Sullivan
on 17 Jun 2013
Try using randi
Example
randomRow = m(randi(size(m,1)),:);
0 Comments
Wayne King
on 17 Jun 2013
Edited: Wayne King
on 17 Jun 2013
m = randn(17543,17);
idx = randperm(size(m,1),1);
B = m(idx,:);
idx tells you which row you randomly selected.
If you have an older version of MATLAB where the above does not work do:
m = randn(17543,17);
idx = randperm(size(m,1),1);
B = m(idx(1),:);
0 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!