Random number generation problem
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Aftab Ahmed Khan
el 12 de Sept. de 2014
Comentada: Star Strider
el 12 de Sept. de 2014
Hello everyone, i am generating random channel assignment using randperm in the following code. Since the number of users are greater than the number of channels, so there will be a repetition of channel assignment. My question is how can i generate a random number from a given range [1-10], if the generated number for example is channel 9 and if that number 9 channel is unavailable then i want to generate another number between [1-10] but this time excluding number 9 channel. and this process continue until i get a free channel number from [1-10]
channels = 10;
users = 100;
challocation = ceil(channels*(randperm(users)/users));
0 comentarios
Respuesta aceptada
Más respuestas (1)
Roger Stafford
el 12 de Sept. de 2014
You say "the number of users are greater than the number of channels, so there will be a repetition of channel assignment" . In that case just use 'randperm' multiple times. Let n = number of channels and m = number of users.
q = ceil(m/n);
C = zeros(q*n,1);
for k = 0:q-1
C(k*n+1:k*n+n) = randperm(n);
end
C = C(1:m); % <-- These are the channels nos. assigned to the m users
The number of users assigned to any channel will never exceed the number of users assigned to another other channel by more than one and yet the assignments are random.
0 comentarios
Ver también
Categorías
Más información sobre Beamforming en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!