generate random numbers between limits and satisfy condition

조회 수: 3 (최근 30일)
mounika
mounika 2021년 2월 12일
편집: mounika 2021년 2월 12일
Hello All,
I am trying to generate two sets of 16 length random number sequences.
x1, x2, x3 ...x16
y1, y2, y3 ...y16
Conditions:
(x,y) lies between 5000 and 6000
The separation between x(n) and x(n+1) should be between +/-(20 - 100). It need not be equally spaced.
The separation between x(n) and y(n) should be +/- 300. The y(n) also should belong to 5000 - 6000 range
I need to check how many such sets can satisfy these conditions.
Kindly help me with a logic or the best way to implement in MATLAB

답변 (1개)

KSSV
KSSV 2021년 2월 12일
편집: KSSV 2021년 2월 12일
How about something like this?
a = 5000 ; b = 6000 ;
x = zeros(1,16) ;
x(1) = randi([a b],1,1) ;
for i = 2:16
x(i) = randi([x(i-1)+20 x(i-1)+100],1,1) ;
end
diff(x)
  댓글 수: 3
KSSV
KSSV 2021년 2월 12일
Edited the code.... generating y you have to try. :)
mounika
mounika 2021년 2월 12일
편집: mounika 2021년 2월 12일
Thank you again for your respone. I generated Y sequence. but the diff is not maintained for Y. (Please see the attached screenshot)
Also, I was wondering by doing [x(i-1)+20 x(i-1)+100] aren't we missing out the other numbers as in,
if x(i-1) = 5510,
x(i-1)+20 = 5530, aren't we missing x(i-1)-20 = 5490. Similarly for x(i-1)+100.
Also, it is important that x(i-1)+20 / x(i-1) -20/ x(i-1)+100 / x(i-1)-100 should belong to the range of 5000 and 6000
By ignoring those numbers, Am i going to miss number of sequences that can be formed with these conditions. Kindly advise

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

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by