Quantcast
Channel: MATLAB Central Newsreader Recent Posts
Viewing all articles
Browse latest Browse all 19628

Re: generate specific random value except some numbers

$
0
0
On 7/14/2013 1:21 AM, Antonio Valentine wrote:
> Hello there,
>
> Kindly be asked for helping in the coding of how to generate a specific range of random numbers. Here is my question
>
> I want to generate an integer number between 1-40.
>
> randi(40,1)
>
> However, I want to skip some numbers as appeared in this vector [10 13 22 27].
>
> How should I do?
>
> Thank you in advance.
>
>
> This is what I have done in the past which is unable to scale up. So I would like to ask for suggestions.
>
> actor_1 = 10;
> actor_2 = 13;
> actor_3 = 22;
>
> num_event = 10;
> num_node = 40;
>
> for i = 1 : num_event
>
> alarm_node(i) = randi(num_node,1);
>
> while alarm_node(i) == actor_1 || alarm_node(i) == actor_2 %|| alarm_node(i) ~= actor_3
>
> alarm_node(i) = randi(num_node,1);
>
> end
>
> end
>

-----------------------------
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

Viewing all articles
Browse latest Browse all 19628

Trending Articles