Borrar filtros
Borrar filtros

Randomly return of a vector element. How to?

1 visualización (últimos 30 días)
Tasos Ampelas
Tasos Ampelas el 5 de Jul. de 2018
Respondida: dpb el 5 de Jul. de 2018
Hi everyone,
I have a vector A, of let's say, 30 elements.
I need Matlab (R2017b) to return the same element constantly and at random times return one of the rest elements, randomly chosen.
How can I do such a thing?
  4 comentarios
Tasos Ampelas
Tasos Ampelas el 5 de Jul. de 2018
Thank you Dennis.
The ''if prob == 1'' gives the chance of the random pick right?
So if I write ''if prob == 2,5'' this will be 1 random pick in 4?
Dennis
Dennis el 5 de Jul. de 2018
Editada: Dennis el 5 de Jul. de 2018
randi only provides natural numbers (1,2,3,4). If you want a chance of 1 in 4 change the line above to
prob = randi(4);
short explanation:
prob = randi(4); %creates a random integer between 1 and 4 (1,2,3 or 4)
if prob ==1 % checks if the random integer is 1

Iniciar sesión para comentar.

Respuestas (1)

dpb
dpb el 5 de Jul. de 2018
ixFix = N; % set the particular element however is to be done...
iRet=[ixFix randperm(numel(A),1)]; % index vector of positions to return
B=A(iRet); % and get them...
Can, of course, eliminate temporaries shown for clarity if not needed for other purposes in the application.
B=A([N randperm(numel(A),1)]);

Categorías

Más información sobre Mathematics en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by