创建一个随机生成的数字矩阵

时间:2013-11-12 22:46:12

标签: python-3.x matrix

import random
def list_2d_generate(rows, columns, low_range, high_range):
    float_list = []
    matrix1 = [[0]*columns for i in range(rows)]
    for i in range(rows):
        for j in range(columns):
            floats = random.uniform(low_range, high_range)
            matrix1.insert(j, floats)
    return matrix1

我应该创建一个大小由用户确定的矩阵,并且对于该矩阵中的每个元素,使用random.uniform生成随机浮点数。上面是我的代码,但它将所有数字放在矩阵之外(将它们添加到列表而不是列表中)。

2 个答案:

答案 0 :(得分:2)

试试这个:

import random
def makematrix(x,y,minnum, maxnum):
    matrix = []
    for row in range(x):
        matrix.append([])
        for col in range(y):
            matrix[row].append(random.uniform(minnum,maxnum))
    return matrix

print(makematrix(4,4,0,100))

示例输出:

[[44.75502455476652, 28.664480955351777, 32.656439723011175, 3.9675096554774303] [61.990473239473566, 55.16751027710425, 62.20529230301345, 53.641004392485584], [1.4753516149572543, 8.391386895268615, 61.87234529817771, 11.364854440314732], [21.122758368045947, 62.155653114217145, 85.20532313391281, 97.60326478339135]]

答案 1 :(得分:1)

列表插入会添加值而不是替换现有值。

不是生成矩阵然后填充矩阵,而是使用以下值生成矩阵:

import random
def list_2d_generate(rows, columns, low_range, high_range):
  return [
    [random.uniform(low_range, high_range)
      for _ in xrange(columns)]
    for _ in xrange(rows)]