On Mon, Apr 18, 2011 at 12:13 AM, shay
<address@hidden> wrote:
I have three arrays, a, b & c.
>I need to extract a random element from a or b and then 8 more random
elements from all 3.
>>then i need to create an array containing these elements which should be
easy enough for me to do.
# 8 random elements in array a
n = prod(size(a));
m = 8;
shuffle = randperm(n);
# to get m elements, just take the first m numbers of shuffle
random_elements = a(shuffle(1:m));
if you want to get a elements from either, a, b, or c, I'd just concatenate them, and randomly pick from the whole thing. To pick one from either a or b, just concatenate a and b.
I'm assuming that you don't want replacement (no element picked twice). If you want the chance for picking an element multiple times, replace the shuffle line with something like:
random_indices = round(rand(m, 1)*n+0.5);
random_elements = a(shuffle(1:m));
Hope this helps.