MATLAB Answers

How o generate random integer value?

조회 수: 2(최근 30일)
SM
SM 2020년 7월 15일
댓글: SM 2020년 7월 16일
Example:
I have used
A=randi([1 10],1,12)
output:
A=[ 1 9 1 6 7 8 3 7 9 7 8 5]
Is it possible to generate random integer values in interval [1 10], excluding 3, 6 and 8 from the interval having said that the size of the array 1 by 12 remains same?

채택된 답변

John D'Errico
John D'Errico 2020년 7월 15일
편집: John D'Errico 2020년 7월 15일
You want to allow the numbers [1 2 4 5 7 9 10]. So just generate a random integer from 1 to 7. Then use that vector to index the allowed set.
allowed = [1 2 4 5 7 9 10];
A = allowed(randi(7,[1,12]));
If you have some more difficult set to allow, then use setdiff.
allowed = setdiff(1:10,[3 6 8]);
  댓글 수: 1
SM
SM 2020년 7월 16일
First option is more suitable for my problem. Thank you John!

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

추가 답변(1개)

madhan ravi
madhan ravi 2020년 7월 15일
a = 1:10;
No_vals = [3, 6, 8];
A = setdiff(a, No_vals);
Wanted = A(randi(numel(A), [1, 12]))
  댓글 수: 1
SM
SM 2020년 7월 16일
Thank you Ravi....Your solution is more comprehensive and easy to understand.

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by