Date: Jul 14, 2013 11:32 PM
Author: Nasser Abbasi
Subject: Re: generate specific random value except some numbers

On 7/14/2013 2:43 AM, Antonio Valentine wrote:

>>
>> -----------------------------
>> A = [1:9 11 12 13:21 23:26 28:40];
>> N = length(A);
>> num_event = 10;
>> arrayfun(@(i) A(randi(N,1)),1:num_event)
>> --------------------------------
>>
>> 9 37 6 34 21 40 3 18 4 39


>
> Your suggestion is quite straightforward.


But note: The above can end up picking the same element from
the set more than one time. Still by random, but you can
end up with the same element selected more than once.

If you want to randomly select say m elements from a set
without the same element selected again, you can try this:

------------------------------
A = [1,2,3,5,6,7,11,12,20,21]; %the set
m = 5; %number of elements to pick by random
B = zeros(m,1); %place to store what was selected
for i = 1:m
k = randi(length(A),1);
B(i) = A(k);
A(k) = []; %remove what was selected so it won't be selected again
end
B
--------------------------


>May I ask for an option of
>
> A = [1:40];
> B = [10 13 22 27];
>
> Then I can separate into two vectors where vector B the numbers I want to skip it.
>
> Is that possible?
>


sorry, do not understand what is asked here.

--Nasser