【问题标题】:Creating list of 2D matrices in Python在 Python 中创建二维矩阵列表
【发布时间】:2017-09-08 23:15:36
【问题描述】:

我正在尝试创建一个二维矩阵列表,如下图所示:

list of 2d matrices

基本上,我想从一个全为零的 NxN 矩阵开始,然后依次用 1 替换 0(如图所示)。随着每次修改将 0 更改为 1,我想在该步骤输出矩阵并将其保存在列表或数组中。

对于插图中的第一行矩阵,我有这个:

    dim = 4
    x=[]
    for i in range(0,dim):
        matrix = np.zeros((dim,dim))
        matrix[0,i] = 1
        x.append(matrix)
    m0 = x[0]
    m1 = x[0]+x[1]
    m2 = x[0]+x[1]+x[2]
    m3 = x[0]+x[1]+x[2]+x[3]

我想概括这一点,所以我不仅得到第一行,还得到图像中显示的其余行,并通过“dim”更改矩阵大小。我似乎无法弄清楚这一点。我将不胜感激。

【问题讨论】:

    标签: python python-3.x numpy for-loop matrix


    【解决方案1】:

    这样就可以了:

    import numpy as np
    dim = 4
    x=[]
    for i in range(dim):
        lst=[]
        matrix=np.zeros((dim,dim))
        vec=np.ones(i+1)
        for j in range(dim):
            matrix[0:i+1,j]=vec
            lst.append(np.copy(matrix))
        x.append(lst)
    print(x)
    

    【讨论】:

    • 谢谢,帮了大忙。