2024-05-21 02:28:08 发布
网友
def getMatrixMinor(m,i,j): return [row[:j] + row[j+1:] for row in (m[:i]+m[i+1:])]
上面的代码是我在堆栈溢出中找到的,为了找到矩阵的逆,但是,我在python中确实是新手。有人能用这段代码来解释构造小调矩阵的背后机制吗?在
顺便说一句,我用过这段代码,但是我不明白它是怎么工作的。在
这个函数非常简单,用来计算第一个小矩阵。假设你有一个大小为m x m的平方矩阵,并且你想在(i,j)位置计算第一个次矩阵,你要做什么?您必须通过删除行i-th和列j-th从原始矩阵中提取一个大小为(m-1) x (m-1)的更小的矩阵,这是由函数完成的。在
m x m
(i,j)
i
j
(m-1) x (m-1)
具体地说,m[:i]+m[i+1:]删除i-th行并创建剩余行的新列表。对于此列表中的每一行,函数将删除元素row[j]。函数的输出是一个列表(行)的列表,表示相应的次矩阵。在
m[:i]+m[i+1:]
row[j]
我建议您看看Python list comprehension和{a2}。在
让我们从矩阵的(i,j)th次矩阵的定义开始:
(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.
n
n-1
i'th
j'th
现在让我们看看这个python一行程序:
[row for row in (m[:i] + m[i+1:])]
m[:i]给出了m的第一个i行(请记住,我们将矩阵表示为一个行列表,在python中添加两个列表将返回一个更大的列表),现在让我们看另一个单行线:
m[:i]
m
这给了我们一行中除了j'th元素之外的所有元素(lst[a:b]给出了一个列表,其中的元素来自lst,介于a和{},排除了b)
lst
a
b
将以上两种方法结合起来,得到一个返回a new matrix with i'th row and j'th column excluded的表达式:
a new matrix with i'th row and j'th column excluded
这是次矩阵。在
这个函数非常简单,用来计算第一个小矩阵。假设你有一个大小为
m x m
的平方矩阵,并且你想在(i,j)
位置计算第一个次矩阵,你要做什么?您必须通过删除行i
-th和列j
-th从原始矩阵中提取一个大小为(m-1) x (m-1)
的更小的矩阵,这是由函数完成的。在具体地说,
m[:i]+m[i+1:]
删除i
-th行并创建剩余行的新列表。对于此列表中的每一行,函数将删除元素row[j]
。函数的输出是一个列表(行)的列表,表示相应的次矩阵。在我建议您看看Python list comprehension和{a2}。在
让我们从矩阵的
(i,j)th
次矩阵的定义开始:现在让我们看看这个python一行程序:
^{pr2}$m[:i]
给出了m
的第一个i
行(请记住,我们将矩阵表示为一个行列表,在python中添加两个列表将返回一个更大的列表),现在让我们看另一个单行线:这给了我们一行中除了},排除了
j'th
元素之外的所有元素(lst[a:b]给出了一个列表,其中的元素来自lst
,介于a
和{b
)将以上两种方法结合起来,得到一个返回
a new matrix with i'th row and j'th column excluded
的表达式:这是次矩阵。在
相关问题 更多 >
编程相关推荐