在 Python 中将矩阵的对角线设置为零

问题描述 投票:0回答:1
m = [[[math.inf] * 10] for i in range(10)]

for i in range(len(m)):
    for j in range(len(m)):
        if(i == j):
            m[i][i] = 0

enter image description here

我尝试插入零并且我使用调试器来观察进程的进行。而不是将其更改为 [[[0,inf,inf,inf,inf,inf,inf,inf,inf,inf],[......],[.......]]]

将其更改为 [[0], [[inf,inf,inf,inf....],[inf,inf,....]]

这会导致索引越界错误,因为它只是将 10x10 矩阵减少到顶行为零, 与 inf,inf,inf,inf,inf,inf,inf,inf,inf,inf

相反

我的目标是将 10x10 矩阵的对角线设置为全零。

我尝试使用 m = [[[math.inf] * 10] for i in range(10)]

matrix diagonal
1个回答
0
投票

特别请注意,[math.inf] * 10 是长度为 10 的列表,而 [[math.inf] * 10] 是长度为 1 的列表,其中包含长度为 10 的单个列表。

© www.soinside.com 2019 - 2024. All rights reserved.