Generate 2 random numbers x and y for 10 times in a loop. x can take any value in the range of (0,1) but y is conditioned on x such that y assumes any number between (0,1-x)

3 views (last 30 days)
for i=1:10
random_x=rand
random_y=

Accepted Answer

Samay Sagar
Samay Sagar on 21 Jun 2023
You can use the following to generate random numbers between 0 and 1-x
y=rand()*(1-x)
%To generate random no.s between a and b : y = a + rand()*(b-a)

More Answers (2)

RANGA BHARATH
RANGA BHARATH on 21 Jun 2023
Edited: RANGA BHARATH on 21 Jun 2023
Hi @Payel. Here is the solution and code for your question.
Question: How to use the rand() function when the range parameters are conditioned on any other variable?
Solution:
You can simply define the independent variable first and then use it in defining the dependent variable.
To be more specific, once you define the x, you can use y = rand()*(1 - x).
Code:
x = zeros(1,10);
y = zeros(1,10);
for i=1:10
temp = rand(1);
x(1,i) = temp;
y(1,i) = rand(1)*(1-temp);
end
x
x = 1×10
0.6590 0.7347 0.9144 0.6091 0.3819 0.4112 0.1823 0.8654 0.5492 0.6796
y
y = 1×10
0.3405 0.1315 0.0718 0.1244 0.3935 0.3454 0.7109 0.1107 0.1352 0.1733

Aakash
Aakash on 21 Jun 2023
You can use this:
for i = 1:10
x = rand();
y = rand()*(1-x);
end

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!