rand()的Matlab到Python转换
在Matlab中,我有以下内容:rand()的Matlab到Python转换,python,matlab,random,code-conversion,Python,Matlab,Random,Code Conversion,在Matlab中,我有以下内容: duration = 20 n=5 times = rand(1,n)*duration; times = random.uniform(1,durations,n) %% or times = random.uniform(1,20,5) 变量“times”给出一个1×n矩阵,该矩阵由0到1之间的随机数填充,然后乘以20。这将产生一组0到20之间的5个数字 现在,我想在Python中实现同样的功能,等效的功能是什么? 我尝试了以下方法: duration
duration = 20
n=5
times = rand(1,n)*duration;
times = random.uniform(1,durations,n) %% or times = random.uniform(1,20,5)
变量“times”给出一个1×n矩阵,该矩阵由0到1之间的随机数填充,然后乘以20。这将产生一组0到20之间的5个数字
现在,我想在Python中实现同样的功能,等效的功能是什么?
我尝试了以下方法:
duration = 20
n=5
times = rand(1,n)*duration;
times = random.uniform(1,durations,n) %% or times = random.uniform(1,20,5)
但我得到了这个错误:
TypeError:uniform()正好接受3个参数(给定4个)
这对我来说没有意义,因为我似乎只给了它3个参数。只接受随机数的上限和下限。您需要调用random.uniform
n
次来创建随机值列表
values = [random.uniform(0, 20) for _ in range(5)]
或者,您可以使用类似于MATLAB的方法执行此操作,该函数将返回一个numpy数组
import numpy as np
values = np.random.rand(1, 5) * 20
如果要将大量代码从MATLAB转换为Python,建议不要使用标准数据类型,因为它的计算速度和与MATLAB类似的行为 非常感谢您的解释和解决方案!事实上,这是有效的,我尝试了numpy版本!