python - 在python中求小矩阵

标签 python matrix

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 size n is a smaller matrix of size n-1 with the i'th row and j'th column deleted.

现在让我们看看这个 python oneliner:

[row for row in (m[:i] + m[i+1:])]

m[:i]给出第一个 im (请记住,我们将矩阵表示为行列表,并且在 python 中添加两个列表会返回一个更大的列表),现在让我们看看另一个行:

row[:j] + row[j+1:]

这为我们提供了一行中除 j'th 之外的所有元素元素(lst[a:b] 给出一个列表,其中包含 lstab 之间的元素,其中 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/

相关文章:

python - 让用户输入变量用于以后的方程式

python - 在生成 Django 管理 URL 时覆盖查询集过滤器

python - 从 python 字符串加载模块而不执行代码

C 我的矩阵阅读器怎么了?

python - 导入错误 : DLL load failed while importing pyexpat: The specified module could not be found

python - 是否存在可以保存任何用户属性的现有 Python 类?

r - 如何将每一维数组的值相加为一个矩阵

java - 在 onActivityResult 中调整 imageView 中的图像大小并重新绘制图像

python - 在python中向矩阵添加元素

推荐系统中的矩阵分解方法