生成两个组数字之间的随机值(Generate random values between two s

2019-10-17 20:22发布

我的任务是产生-2和5之间的5000张随机数,然后计数如何将这些价值中有多少是2和3之间这是我到目前为止有:

randNums=rand(1,5000); %Generate 5000 random values between 0 and 1

randNums=randNums*7-2; %Get those random values to be between -2 and 5

据我所知, 7*1=70*7=0那么-2每个= 7-2,但我确实螺母充分了解如何重新申请,如果数字是被5,6或之间-6和1 。

Answer 1:

我的问题解释

您在区间(0,1)具有随机数。 但是你需要在随机数(A,B)。

您只需扩展和改变你的时间间隔。

缩放间隔:所述间隔(A,B)是BA的大小/长度。 重新调整的时间间隔你有BA乘以所有的随机值。

按住Shift键的时间间隔:当你攀登的时间间隔你在区间(0,BA)有一个数字。 您只需添加的数量将它转换所有的数字。 这将导致随机数在区间(A,B)。



Answer 2:

什么你指的是被称为“ 线性插值 ”。 在一些图书馆也被称为lerp ,通常它的实现

float lerp(float v0, float v1, float t) {
    return v0+(v1-v0)*t
}

所以你的情况v0是-2, v1是7和t是0和1之间要插值值。



Answer 3:

numbers = random('unif', -2, 5, 1, 1000);
count = sum(numbers > 2 & numbers < 3);


文章来源: Generate random values between two set numbers
标签: matlab random