Given a vector, I would like to sample without replacement elements from it repeatedly.
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Cem Gormezano
el 21 de Ag. de 2020
Comentada: Matt J
el 21 de Ag. de 2020
Given a (m x 1) vector v , I would like to ,randomly without replacement, sample s elements from it. I know I can use randsample(v,s) if I were to do this once. However, I want to do this repeatedly without using a for loop (i.e vectorization) so that it is fast.
1 comentario
Respuesta aceptada
Matt J
el 21 de Ag. de 2020
m=10; n=15; s=3;
V=rand(m,n); %hypothetical data
[~,ids] = sort( rand(size(V)) ,1);
ids=ids(1:s,:)+m*(0:n-1);
selection=V(ids) %selects s elements from each column of V
4 comentarios
Matt J
el 21 de Ag. de 2020
You're quite welcome, but please Accept-click the answer if it resolved your issue.
Más respuestas (1)
Bruno Luong
el 21 de Ag. de 2020
Editada: Bruno Luong
el 21 de Ag. de 2020
v = 'a':'z' % your vector
n = 10; % number of "loop"
s = 3; % number of drawing without replacement
[~,ir] = maxk(rand(n,length(v)),s,2);
r = v(ir)
0 comentarios
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!