【问题标题】:Python Matrix overlapPython 矩阵重叠
【发布时间】:2017-09-18 12:45:06
【问题描述】:

我遇到了重叠矩阵的问题

import numpy as np
import pprint

A = np.array([[1,0],[0,1]])
B = np.array([[0,0,0],[0,0,0],[0,0,0]])

for i in range(0,2):
    for j in range(0,2):
        if i==0:
            if j<2:
                B[i,j]=A[i,j]
        elif i==2:
            if j==2:
                B[i,j]=A[i,j]
        else:
            B[i,j] = A[i,j] + A[i-1,j-1]

pprint.pprint(B)

它返回这样的数组([[1,0,0],[0,2,0],[0,0,0]]),但我想要([[1,0,0],[0,2,0],[0,0,1]])

我的代码有什么问题?

请帮忙。

【问题讨论】:

    标签: python arrays matrix


    【解决方案1】:

    你可以在没有任何循环的情况下做到这一点:

    B[:2, :2] += A
    B[1:3, 1:3] += A
    print(B)
    # array([[1, 0, 0],
    #        [0, 2, 0],
    #        [0, 0, 1]])
    

    【讨论】:

    • 谢谢,嗯,还有一个问题。然后如果我有 6x6 数组并且我想制作 9x9 那么 B[:5, :5] += A, B[3:8, 3:8] +=A 这种代码是对的??
    • 取决于重叠区域,例如是的
    • 这回答了你的问题吗?
    猜你喜欢
    • 1970-01-01
    • 2018-10-19
    • 2020-01-05
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多