我正在尝试创建一个复杂的矩阵,并将0,0条目赋值为1 + 0j。这是我写的代码:
import numpy as n
import cmath
M=n.zeros((5,5),dtype=complex)
M[0:0]=1+0j
print M
但是,执行后,0,0条目仍为零:
[[ 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
[ 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
[ 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
[ 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
[ 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]]
我的代码出了什么问题?这样做的正确方法是什么?
答案 0 :(得分:0)
您只需要像这样对矩阵元素引用进行编码:
M[0,0]=1+0j
语法M [0:0]将意味着第一个子列表就在第一个子列表之前,即空元素。尝试评估M [0:1]
>>>> M[0:1]
array([[ 1.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j]])