MATLAB Answers

Alternatives to 'datasample'

2 views (last 30 days)
Hi!
I'm looking for an alternative to the datasample function. It's a part of the Statistics & Machine Learning toolbox. Any ideas? I want to be able to sample rows of data from tables and matrices and would like to have the choice of sampling with/without replacement.
Thanks for your ideas!

  5 Comments

Show 2 older comments
Veena Chatti
Veena Chatti on 22 Aug 2020
I think I've found a way to do it by converting the dataset to an array, combining a loop with randperm, and choosing one row at a time, but ideally, if someone knows about a function that does it in a more straightforward way that I just haven't come across yet, that would be fabulous. I eventually want to share my perceptron with others who may not have the toolbox, and it would be nice not to require that they have to buy it just for this one function!
Adam Danz
Adam Danz on 22 Aug 2020
randperm samples without replacement.
To sample with replacement, use randi.
Veena Chatti
Veena Chatti on 26 Aug 2020
Thanks. I think I have it now.

Sign in to comment.

Accepted Answer

Kiran Felix Robert
Kiran Felix Robert on 26 Aug 2020
Hi Veena,
Yes, randomperm (without replacement) and randi (with replacement) can be used as an alternative.
Furthermore, if the dataset has been converted to either a matrix or an array format, the rows can be sampled without using a loop as shown in the example as follows,
X = rand(50,10); % Assume X is the dataset
SampledRows = X(randi(50,[200,1]),:); % 200 Sample rows (with replacement)
Kiran Felix Robert

  1 Comment

Veena Chatti
Veena Chatti on 3 Sep 2020
Thank you Kiran Felix Robert!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!