Randomly return of a vector element. How to?

조회 수: 4 (최근 30일)
Tasos Ampelas
Tasos Ampelas 2018년 7월 5일
답변: dpb 2018년 7월 5일
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
Tasos Ampelas
Tasos Ampelas 2018년 7월 5일
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 2018년 7월 5일
편집: Dennis 2018년 7월 5일
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

댓글을 달려면 로그인하십시오.

답변 (1개)

dpb
dpb 2018년 7월 5일
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)]);

카테고리

Help CenterFile Exchange에서 Random Number Generation에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by