Random picking of adjacent data points

4 views (last 30 days)
aa
aa on 29 Aug 2020
Commented: aa on 30 Aug 2020
Hi,
May someone help me
I have data in one column and want to randomly pick adjacent 48 data points for 1000 times. For example, we have 10 data point (1, 2,3, 4,5,6,7,8,9,10) and we randomly pick 3 adjacent data points 5 times.
May some one help me ...
Thank you.

Accepted Answer

Image Analyst
Image Analyst on 29 Aug 2020
Try this:
data = [1:50000]'; % Whatever.....
% Define general parameters for getting the samples:
numElements = size(data, 1)
numAdjacent = 48
numSubsets = 1000
% Now do the iterations to get each of the 1000 subsets.
for k = 1 : numSubsets
% Get the first index at random. Don't get within numAdjacent of the end though!
firstIndex = randi(numElements - numAdjacent + 1);
% Now get the second index which will make the subset have adjacent indexes.
secondIndex = firstIndex + numAdjacent - 1;
% Get one subset of 48 adjacent data samples.
theseData = data(firstIndex : secondIndex);
% Now do something with this set of adjacent elements.
end
  5 Comments
aa
aa on 30 Aug 2020
Thank you, THis works very well and serve the purpose perfectly.

Sign in to comment.

More Answers (1)

madhan ravi
madhan ravi on 29 Aug 2020
Edited: madhan ravi on 29 Aug 2020
datasets = num2cell(reshape(data(randperm(48e3)), [], 1e3), 1);
%celldisp(datasets)
  3 Comments
aa
aa on 29 Aug 2020
Apology, I may not explain what i exactly want ... This may explain my question in better way .....

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!