How to randomly select sub-sets from an array?

5 views (last 30 days)
aa on 18 Dec 2020
Commented: aa on 24 Dec 2020
Hi everyone,
May someone help me ..
I have data in text file (51360 enteries) attached here. How can I select 1000 random sub-sets consists of 48 consectuive enteries.

Answers (1)

Rik on 18 Dec 2020
  1. Read your data to a Matlab variable (even load might work here).
  2. Generate a vector of 1000 integers between 1 and 51360-48. The randi function should work for you.
  3. Create a vector in the opposite direction of the one in step 2 with the values 0 to 48-1. The colon operator is enough. Mind the parentheses and use .' to flip the direction if needed.
  4. Add the two vectors together, using implicit expansion (older Matlab releases will require bsxfun(@plus,__,__) to do this).
  5. Use the resulting array to index into your loaded data. Depending on what you did in step 2 and 3, either each row or each column will be a sample.
aa on 24 Dec 2020
Apology for delay... I am still confused for step 2 ... I have to pick 1000 entrires randomly from the given data along with adjucemmt 48 data points. May you explain why we creat vector in one direction and then in reverse direction.

Sign in to comment.


Community Treasure Hunt

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

Start Hunting!