gpt4 book ai didi

python - 在 python 的 100 x 100 矩阵中,填充非对角线元素

转载 作者:太空宇宙 更新时间:2023-11-03 13:18:57 25 4
gpt4 key购买 nike

我正在尝试填充 100x100 矩阵上的非对角线元素,如下面的 matlab 代码所示,那么如何在 python 中复制它。

T=(2*t0*diag(ones(1,100)))-(t0*diag(ones(1,99),1))-(t0*diag(ones(1,99),-1))

所以我知道 RHS 的第一项将用值 2*t0 填充矩阵的对角线,

我在 python 中的操作如下:

x = np.zeros((100,100))
np.fill_diagonal(x,2*t0)

但是我不知道第2项和第3项是怎么做的,我知道它们会用-t0的值填充对角线元素上方和下方的值,而不是全部关闭对角线值,但只用-t0填充对角线的上下值,其余均为零,但我不知道如何为其编写python代码。

我找到了这段代码:

# diagonal with offset from the main diagonal
diag([1,2,3], k=1)

将输出为:

array([[0, 1, 0, 0],
[0, 0, 2, 0],
[0, 0, 0, 3],
[0, 0, 0, 0]])

但是如何像我的问题一样将它应用于大型矩阵呢?我在交互式 python 中工作,即 Anaconda,那么我可以使用哪些其他包来解决我的问题?

最佳答案

根据您在此处提供的 np.diag,很容易做到:

a = np.ones((1, 100))[0]
b = np.ones((1, 99))[0]
m = np.diag(a, 0) + np.diag(b, -1) + np.diag(b, 1)

m 这里是 100x100 三对角矩阵

更新:

我找到了一个链接 here类似的问题,也看看。

关于python - 在 python 的 100 x 100 矩阵中,填充非对角线元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20651432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com