How can I randomly select a row from a matrix?

14 Ansichten (letzte 30 Tage)
Graeme
Graeme am 17 Jun. 2013
Kommentiert: Sushmita kumari am 11 Feb. 2022
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 Kommentar
chaitra kn
chaitra kn am 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Evan
Evan am 17 Jun. 2013
Bearbeitet: Evan am 17 Jun. 2013
Try this:
ind = ceil(rand * size(m,1));
mrow = m(ind,:);
  5 Kommentare
Evan
Evan am 17 Jun. 2013
No worries! And you're welcome--glad you got it fixed. :)
Sushmita kumari
Sushmita kumari am 11 Feb. 2022
i i wish to find a coloum insted of row .please suggest sutable code

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Jonathan Sullivan
Jonathan Sullivan am 17 Jun. 2013
Try using randi
Example
randomRow = m(randi(size(m,1)),:);

Wayne King
Wayne King am 17 Jun. 2013
Bearbeitet: Wayne King am 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),:);

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by