필터 지우기
필터 지우기

Create random values between two decimal values

조회 수: 1 (최근 30일)
Adrian
Adrian 2012년 10월 10일
I have written this code so far:
%create initial elastic net points as evenly spaced in horizontal position
%with random vertical components.
%create the initial matrix
en_points = zeros(NUM_EN_POINTS,2);
%make the x comp evenly spaced horizontally spanning the length of cities
en_points(1:NUM_EN_POINTS,1) = transpose(linspace(0,1,NUM_EN_POINTS));
%make the y comp a random value between the cities
en_points(1:NUM_EN_POINTS,2) = rand();
What I am trying to do is make column 2 be a random variable between two decimal values, which are (0.5 - l, 0.5 + l).
Is this possible?

채택된 답변

Razvan
Razvan 2012년 10월 10일
en_points(:,2) = (0.5 - l) + 2*l*rand(NUM_EN_POINTS,1);

추가 답변 (2개)

Andrei Bobrov
Andrei Bobrov 2012년 10월 10일
use unifrnd from the Statistics Toolbox
en_points(1:NUM_EN_POINTS,2) = unifrnd(.5 - l,.5 + l,NUM_EN_POINTS,1);
OR
en_points(1:NUM_EN_POINTS,2) = .5 - l + 2*l*rand(NUM_EN_POINTS,1);

Image Analyst
Image Analyst 2012년 10월 10일
Perhaps you overlooked the first example in the help for rand(). Here it is:
Example 1
Generate values from the uniform distribution on the interval [a, b]:
r = a + (b-a).*rand(100,1);

Community Treasure Hunt

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

Start Hunting!

Translated by