Random sampling and removing data

Hi,
I have a set of data points = [10 10 0; 10 13 0; 10 16 0;20 10.1 0; 20 13.1 0 ; 20 16.1 0; 30 10.2 0;30 13.2 0; 30 16.2 0;40 10.3 0; 40 13.3 0; 40 16.3 0; 50 13.4 0];
and for every iteration, i want to select a random set of values and for next iteration previously selected set of value should be remove from the datapoints

 采纳的回答

You can make the data random by using the below and then you can pick the points.
points = [10 10 0; 10 13 0; 10 16 0;20 10.1 0; 20 13.1 0 ; 20 16.1 0; 30 10.2 0;30 13.2 0; 30 16.2 0;40 10.3 0; 40 13.3 0; 40 16.3 0; 50 13.4 0];
idx = randperm(size(points,1)) ;
%% shuffle the points
points_random = points(idx,:) ;

2 个评论

Thank you. It is what i wanted
Thanks is accepting the answer.. :)

请先登录,再进行评论。

更多回答(1 个)

Hey Sooraj,
it is not all clear to me whether you want to choose entire rows/columns of your matrix or completely random sets of numbers. So I want to make this suggestion to choose rows by random indexing and deleting them thereafter.
But if KSSVs solution suffices for your purpose, it should be better as it involves less computation. You might want to initialize the variables before looping, too.
dataset = [10 10 0; 10 13 0; 10 16 0;20 10.1 0; 20 13.1 0 ; 20 16.1 0; 30 10.2 0;30 13.2 0; 30 16.2 0;40 10.3 0; 40 13.3 0; 40 16.3 0; 50 13.4 0];
nr_picks = 3;
for i = 1:nr_picks
random_row_index = randi(size(dataset, 1)); % pick random row index
extracted_row = dataset(random_row_index, :); % extract the entire row
dataset(random_row_index, :) = []; % delete this row from the dataset
end

1 个评论

Thank you too, yeah i think KSSVs solution should be sufficient as i want to have less computation. But i will check with your method as well. Thanks

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by