Random sampling and removing data
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
sooraj ajith
el 3 de Feb. de 2021
Comentada: KSSV
el 3 de Feb. de 2021
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
0 comentarios
Respuesta aceptada
KSSV
el 3 de Feb. de 2021
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 comentarios
Más respuestas (1)
Mara
el 3 de Feb. de 2021
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
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!