Matlab到Python的rand转换()

时间:2016-04-25 19:04:21

标签: python matlab random code-conversion

在Matlab中我有以下内容:

duration = 20
n=5
times = rand(1,n)*duration;

变量“times”给出1乘n矩阵,其中填充0到1之间的随机数,然后乘以20.这将产生一组介于0和20之间的5个数字。

现在我想在Python中实现相同的功能,相同的是什么? 我尝试了以下方法:

times = random.uniform(1,durations,n)  %% or times = random.uniform(1,20,5)

但是我收到了这个错误:

  

TypeError:uniform()只需要3个参数(给定4个)

对我来说没有意义,因为我似乎只给了它3个参数。

1 个答案:

答案 0 :(得分:2)

random.uniform只接受随机数的上限和下限。您需要拨打random.uniform n次来创建随机值列表。

values = [random.uniform(0, 20) for _ in range(5)]

或者,您可以使用numpy.random.rand与MATLAB类似地执行此操作,该函数将返回一个numpy数组。

import numpy as np
values = np.random.rand(1, 5) * 20

如果要将很多代码从MATLAB转换为Python,建议numpy使用标准数据类型,因为它具有计算速度和与MATLAB类似的行为。