Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
rand()的Matlab到Python转换_Python_Matlab_Random_Code Conversion - Fatal编程技术网

rand()的Matlab到Python转换

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

在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 = 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版本!