Date: Jul 14, 2013 2:21 AM
Author: Antonio Valentine
Subject: generate specific random value except some numbers

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