如何切割较大的矩阵并匹配较小矩阵的形状
How to cut a bigger matrix and match the shape of a smaller matrix
我有两个不同长度的矩阵列表。
例如
X 中矩阵的长度:
- (110,3)
- (150,3)
- (120,3)
Y 中的矩阵长度:
- (100,3)
- (125,3)
我的问题是我有一个循环会减去矩阵,例如 (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))
我有两个不同长度的矩阵列表。
例如
X 中矩阵的长度:
- (110,3)
- (150,3)
- (120,3)
Y 中的矩阵长度:
- (100,3)
- (125,3)
我的问题是我有一个循环会减去矩阵,例如 (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))