将矩阵的对角线设置为零

问题描述 投票: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

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

[[[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)]
python matrix diagonal
1个回答
0
投票

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

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