How to randomly select 2 rows

1 view (last 30 days)
lech king
lech king on 5 Oct 2020
Edited: lech king on 5 Oct 2020
I want to randomly select 2 rows of a matrix
The matrix may have an odd number of rows
How to randomly select these 2 rows
for example
Random numbers are inside the variable B
Select the rows accordingly with the numbers in the random variable
No duplicate rows
In other words, if a row is selected, it will no longer be selected
Thanks for your guidance

Answers (2)

Ameer Hamza
Ameer Hamza on 5 Oct 2020
Edited: Ameer Hamza on 5 Oct 2020
You can use the output of randperm as index
M = rand(10, 5); % random matrix
rows = randperm(size(M,1), 2)
M_new = M(rows, :)

Andreas Bernatzky
Andreas Bernatzky on 5 Oct 2020
This would be my solution:
myMat = rand(10,50);
[nRow,~] = size(myMat);
randomRows = round((nRow - 1).*rand(2,1) + 1); % from 1 to nRow
firstRandomRow = myMat(randomRows(1),:);
secondRandomRow = myMat(randomRows(2),:);


Find more on Operating on Diagonal Matrices in Help Center and File Exchange




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by