/usr/share/psychtoolbox-3/PsychProbability/URandSel.m is in psychtoolbox-3-common 3.0.14.20170103+git6-g605ff5c.dfsg1-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | function sel = URandSel(in,n)
% sel = RandSel(in,n)
% if N is a scalar
% randomly selects N elements from set IN, each element from IN will
% be selected up to one time (so sampling without replacing).
% Output is of size 1xN
% if N is a vector
% randomly selects prod(N) elements from set IN, without replacing. 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
% 2008-08-27 DN Wrote it
% 2012-06-13 DN Can now also return shaped inputs through non-scalar n input
if isscalar(n)
nElem = n;
n = [1,n];
else
nElem = prod(n);
end
psychassert(nElem<=numel(in),'More return elements requested (prod(n): %d) than number of elements in input (numel(in): %d)',nElem,numel(in));
selind = NRandPerm(numel(in),nElem);
sel = reshape(in(selind),n);
|