与Matlab函数“ randsrc”类似

时间:2019-05-21 12:46:25

标签: python matlab

我正在寻找Python中类似于MATLAB中randsrc的函数。

我想重写:

data_points=32;
M=4;
data_source = randsrc(1, data_points, mslice[0:M - 1]);

Python中的randscrc类似物是什么?

1 个答案:

答案 0 :(得分:1)

Python具有您可以使用的random模块。如果要构造随机元素的列表(如您的示例所示),则可以使用random.choice和列表生成器:

[random.choice([1,2,'A',4]) for _ in range(15)]

这将使您返回:

['A', 1, 'A', 1, 1, 4, 1, 2, 1, 4, 2, 4, 4, 2, 1]

如果需要一列随机元素,请在生成器中添加方括号:

[[random.choice([111,2,333,4])] for _ in range(15)]

[[2],
 [333],
 [4],
 [2],
 [4],
 [2],
 [111],
 [333],
 [333],
 [333],
 [111],
 [333],
 [2],
 [111],
 [2]]

如果要使用随机矩阵,请展开生成器:

[[random.choice([1,2,3,4]) for _ in range(5)] for _ in range(5)]

[[1, 2, 4, 3, 4],
 [4, 2, 1, 1, 1],
 [3, 1, 2, 1, 3],
 [1, 2, 3, 3, 3],
 [2, 1, 3, 1, 2]]

您可以将任何元素存储在choice的“字母”中。