function sel = RandSel(in,n)
% sel = RandSel(in,n)
% if N is a scalar
% randomly selects N elements from set IN, elements are replenished.
% Output is of size 1xN
% if N is a vector
% randomly selects prod(N) elements from set IN, with replenishment. N
% specifies the shape of the output, e.g., if N=[10 10 5], SEL will be
% a 10x10x5 matrix
% IN can be of any datatype and can have any number of dimensions and
% elements
% DN 2008 wrote it
% 2008-08-06 Updated it to support n selections from set (DN)
% 2012-06-13 Can now also return shaped inputs through non-scalar n input (DN)
if isscalar(n)
n = [1,n];
end
selind = ceil(RandLim(n,0,numel(in)));
sel = in(selind);