一、生成对角矩阵的基本用法
1、diag(a)
使用diag(a)命令生成对角矩阵,a为某个向量,如下所示:

2、diag(a,i)
使用diag(a,i)命令生成,a为某个向量,i为a向量相对主对角线偏移的列数(向上为正,向下为负)。当i=0时,可以直接写成diag(a)。具体情况如下:


二、生成三对角线上元素相同的矩阵
1、生成全为1的向量如下:
(1)a(1:3,1) = 1

(2)a = repmat([1],3,1)

注意:a=repmat(A,m,n)是用A矩阵铺成m*n块且每一块都是A的矩阵,如下:

(3)ones(3,1)

2、生成对角线上元素相同的矩阵

或者 :

三、生成其他类型的三对角矩阵
先用A=zeros(m,n)定义m行n列的元素都为0的矩阵,然后为对角线元素赋值则可以得到任意形式的三对角矩阵。
(1)第一种方法
a = zeros(3,3)

a(logical(eye(size(a)))) = 1

第二种方法:使用循环给对角线元素赋值,输入:
for i = 1:size(a) #size(a) =3,3 即3行3列
a(i,i) = 1 #即将a矩阵中第i行第i列元素赋值为1
end

注:这种方法只适合方阵
网友评论