在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个参数。
答案 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类似的行为。