Matlab中如何重复矩阵(对角线)元素?

2019-05-29  本文已影响0人  明明就_faf8

一、生成对角矩阵的基本用法

1、diag(a)

使用diag(a)命令生成对角矩阵,a为某个向量,如下所示:


image.png
2、diag(a,i)

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


image.png
image.png

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

1、生成全为1的向量如下:

(1)a(1:3,1) = 1



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


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

(3)ones(3,1)


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

或者 :


image.png

三、生成其他类型的三对角矩阵

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

a = zeros(3,3)
image.png
a(logical(eye(size(a)))) = 1
image.png

第二种方法:使用循环给对角线元素赋值,输入:

for i = 1:size(a) #size(a) =3,3  即3行3列
a(i,i) = 1 #即将a矩阵中第i行第i列元素赋值为1
end
结果一样.png

注:这种方法只适合方阵

转自:https://blog.csdn.net/yzj577/article/details/79585486

上一篇 下一篇

猜你喜欢

热点阅读