def getMatrixMinor(m,i,j):
return [row[:j] + row[j+1:] for row in (m[:i]+m[i+1:])]
上面是我在堆栈溢出中找到的代码,以便找到矩阵的逆,但是,我对Python确实很陌生。任何人都可以解释一下使用此代码构造次要矩阵的背后机制吗?
顺便说一句,我已经使用了这段代码并且它可以工作,但我只是不明白它是如何工作的。
最佳答案
让我们从 (i,j)th
的定义开始矩阵的次矩阵:
(i,j)th
minor of a matrix of sizen
is a smaller matrix of sizen-1
with thei'th
row andj'th
column deleted.
现在让我们看看这个 python oneliner:
[row for row in (m[:i] + m[i+1:])]
m[:i]
给出第一个 i
行m
(请记住,我们将矩阵表示为行列表,并且在 python 中添加两个列表会返回一个更大的列表),现在让我们看看另一个行:
row[:j] + row[j+1:]
这为我们提供了一行中除 j'th
之外的所有元素元素(lst[a:b] 给出一个列表,其中包含 lst
中 a
和 b
之间的元素,其中 b
除外)
将以上两者结合起来,您将得到一个返回 a new matrix with i'th row and j'th column excluded
的表达式。 :
def getMatrixMinor(m,i,j):
return [row[:j] + row[j+1:] for row in (m[:i]+m[i+1:])]
这是次矩阵。
关于python - 在python中求小矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53934405/