Randomly return of a vector element. How to?

1 vue (au cours des 30 derniers jours)
Tasos Ampelas
Tasos Ampelas le 5 Juil 2018
Réponse apportée : dpb le 5 Juil 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 commentaires
Tasos Ampelas
Tasos Ampelas le 5 Juil 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 le 5 Juil 2018
Modifié(e) : Dennis le 5 Juil 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

Connectez-vous pour commenter.

Réponses (1)

dpb
dpb le 5 Juil 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)]);

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by