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
大小矩阵的次要n
是一个较小的矩阵n-1
与i'th
行和j'th
列已删除。
现在让我们看一下这个 python oneliner:
[row for row in (m[:i] + m[i+1:])]
m[:i]
给出第一个i
行m
(请记住,我们将矩阵表示为行列表,并且添加两个列表会在 python 中返回一个更大的列表),现在让我们看看另一个行:
row[:j] + row[j+1:]
这给了我们一行中除j'th
element (lst[a:b] 给出一个列表,其中的元素来自lst
之间a
and b
, with 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:])]
这是次矩阵。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)