在python中找到对称矩阵

时间:2017-08-26 10:25:14

标签: python

我有一个从A到Z的列表。[A, B, C, D, ...., Z]

我应该得到一个26x26对称矩阵,其中对角线等于零。

我使用随机数生成器来填充矩阵的上半部分。后来我想将矩阵的上半部分复制到矩阵的下半部分。

在python中有一种简单的方法吗? (迭代次数减少)?

1 个答案:

答案 0 :(得分:0)

你可以先制作上面的随机矩阵:

import random
grid = []
for i in range(26):
 grid.append([0]*(i+1)+random.sample(xrange(100), 25-i)) #this creates the upper triangular matrix with random numbers (upto 100) only. The diagonal and the lower triangular matrix has items = 0

然后为了制作对称矩阵,只需这样做:

 for i in range(1, 26):
  for j in range(0,i):
   grid[i][j]=grid[j][i] #this copies the element "opposite" to that index w.r.t the diagonal in order to make a symmetric matrix.

注意:对角元素仍然为零。

希望这会有所帮助。