Comparing randsample and binning uniform random

1 view (last 30 days)
yeungor
yeungor on 23 Jul 2018
Commented: yeungor on 23 Jul 2018
I can produce randomly polled (with replacement) values from vector x with probabilities in vector p using randsample with replacement.
X = randsample(N,K,true,W)
I can equivalently do this by using rand and histcounts (specifying edges) that correspond to the values from a cumulative sum on vector p (assuming p is normalized).
edges = [0 cumsum(p)]; edges(end)=1; % for possible rounding error
Y = rand(1,nsamples);
[~,~,bin] = histcounts(Y, edges);
X = x(bin);
My question is: if one of these is better, which one is?
  2 Comments
Jan
Jan on 23 Jul 2018
randsample is nicer, without doubt.
yeungor
yeungor on 23 Jul 2018
Thanks, it's more readable, that's for sure.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!