如何切割较大的矩阵并匹配较小矩阵的形状

How to cut a bigger matrix and match the shape of a smaller matrix

我有两个不同长度的矩阵列表。

例如

X 中矩阵的长度:

Y 中的矩阵长度:

我的问题是我有一个循环会减去矩阵,例如 (X[0]-Y[0]) 然后 (X[0]-Y[1]) 等等。由于它们具有不同的形状,我必须创建一个代码来对矩阵进行切片。

for x in range (len(X)):
   for y in range (len(Y)):
      if len(X[x])> len(Y[y]):
         X_a = len(X[x]) - len(Y[y])
         X_len = len(X[x]) - X_a

我要去这里的某个地方吗?对不起。这让我很困惑。 :(

从代码看来,当您想减去两个矩阵时,您想要减去较小矩阵的长度。为此,您可以使用如下函数:

def subtract_matricies(mat1, mat2):
    minimum_len = min(len(mat1), len(mat2))
    return mat1[:minimum_len]-mat2[:minimum_len]

然后在你的主循环中使用这个函数:

result=[]
for x in X:
    for y in Y:
        result.append(subtract_matricies(x,y))