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