Skip to main content
 首页 » 编程设计

python之测试矩阵是对称矩阵还是斜对称矩阵

2025年05月04日14zfyouxi

我正在用 Python 做实验室练习。 我编写了代码,但我不知道如何测试矩阵是对称的还是斜对称的。问题是: 1. 检验矩阵是对称的还是斜对称的。 2. 我将如何使用断言来确定矩阵是方阵? 3.有人可以重新检查我的代码吗? 谢谢!

def symmetric(X): 
H = X.copy() 
D = len(H) 
F = len(H[0]) 
listx = [] 
listy = []    
for d in range(0,D): 
    listx.append(0) 
for f in range(0,F): 
    listy.append(listx) 
K = np.array(listy) 
for i in range(0,D): 
    for j in range(0,F): 
        K[j][i] = H[i][j] 
return K 
 
def skewsymmetric(Y): 
H = Y.copy() 
D = len(H) 
F = len(H[0]) 
listx = [] 
listy = [] 
R = -1 
for d in range(0,D): 
    listx.append(0) 
for f in range(0,F): 
    listy.append(listx) 
K = np.array(listy) 
for i in range(0,D): 
    for j in range(0,F): 
        K[j][i] = H[i][j]*R 
return K 
 
if __name__ == "__main__": 
X = np.array([[20,120,200],[120,10,150],[200,150,30]]) 
Y = np.array([[0,1,-3],[-1,0,-2],[3,2,0]]) 
print "X =", X 
print "Y =", Y 
print "This is Symmetric matrix:", symmetric(X) 
print "This is Skew-symmetric matrix:", skewsymmetric(Y) 

请您参考如下方法:

有一种使用 numpy 检查矩阵是否对称的简单方法:

(arr.transpose() == arr).all() 

如果需要检查它是否是斜对称的,那么比较改变第二个“arr”的符号:

(arr.transpose() == -arr).all()