我想生成下面这样的矩阵。 主对角线为2,对角线两侧平行的为1,运用python的numpy很简单。
[[2 1 0 0 0]
[1 2 1 0 0]
[0 1 2 1 0]
[0 0 1 2 1]
[0 0 0 1 2]]
numpy提供了用于生成两种类型的矩阵的函数: eye (和identity )。 不同的是,identity ) )只能生成方阵。 这意味着行数和列数相等。 查看源代码,identity ) )的返回值为eye ) n,dtype=dtype ) )。
另一方面,eye提供了更多的参数。 n :行数,m :列数,如果不传递的话就和行数相同。 K:0是主对角线,是缺省值,正值为对角线上,负值为对角线下(个人理解为相对于主对角线的偏移),dtype :矩阵元素类型
import numpy as np ''结构的对角线为1,其他为0的5*5矩阵' ' a=NP.eye (5,5,0,int ) ' '结构是从主对角线上移了一个数量级的5*5矩阵' ' b=NP.eye )