Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: generate specific random value except some numbers
Replies: 6   Last Post: Jul 15, 2013 5:26 AM

 Search Thread: Advanced Search

 Messages: [ Previous | Next ]
 Nasser Abbasi Posts: 6,677 Registered: 2/7/05
Re: generate specific random value except some numbers
Posted: Jul 14, 2013 3:36 AM
 Plain Text Reply

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

Date Subject Author
7/14/13 Antonio Valentine
7/14/13 Nasser Abbasi
7/14/13 Antonio Valentine
7/14/13 Bruno Luong
7/14/13 Antonio Valentine
7/14/13 Nasser Abbasi
7/15/13 Roger Stafford

© The Math Forum at NCTM 1994-2018. All Rights Reserved.