Generationf of uniform random
Ältere Kommentare anzeigen
How can I generate the uniform random array with the constraint of second value not changing more than 20% of the first value
for example (0.5 0.45 0.54 0.63 0.52...........) The difference between first random to second random should be within 20% of first value and the overall random should in uniform manner.
Thank You.
3 Kommentare
Star Strider
am 10 Nov. 2017
If you impose constraints, that seems then to make it non-random.
Walter Roberson
am 10 Nov. 2017
The values after the first are all to be within 20% of the first? Or the values after the first each have to be within 20% of the immediately proceeding value?
htet wai
am 10 Nov. 2017
Akzeptierte Antwort
Weitere Antworten (1)
Kaushik Lakshminarasimhan
am 10 Nov. 2017
Bearbeitet: Kaushik Lakshminarasimhan
am 10 Nov. 2017
This should work:
N=10; % number of random numbers
success = false;
while ~success
x = rand(N,1);
[minval,minindx] = min(abs(x(2:end) - x(1)));
if minval < 0.2*x(1)
x([2 minindx+1]) = x([minindx+1 2]);
success = true;
end
end
disp(x);
Note that as Star Strider pointed out the sequence will no longer be random.
Kategorien
Mehr zu Random Number Generation finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!