MATLAB如何创建主对角线都是1的矩阵?

MATLAB如何创建主对角线都是1的矩阵?不要偶数阶的。
说错了 应该是这样的一个矩阵 a=[1 0 1;0 1 0;1 0 1]

1、首先打开电脑上的“matlab”软件,在命令行窗口输入一个向量n,向量n有4个元素。接着使用diag函数生成对角矩阵。

2、diag(n,k)可以把向量放在第k条对角线上,k为正值,表示右上。k为负值,则表示左下。在命令行输入diag(n,2),即可把向量放在右上的第二条对角线上。

3、在命令行输入diag(n,-2),即可把向量放在左下的第二条对角线上。

4、接下来在命令行输入一个矩阵,此处以随机矩阵为例,输入rand(3)生成3*3的随机矩阵A。

5、下面使用diag函数提取矩阵A的对角线元素,对角线元素个数为3。

6、使用命令diag(A,k)即可获得第k条对角线上的元素组成的向量,k为正值,表示右上。k为负值,则表示左下。输入命令diag(A,1)即可获得右上的第1条对角线上的元素。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-08-28

1、首先打开matlab软件,输入一个向量n,向量n有4个元素,使用diag函数生成对角矩阵

2、diag(n,k)可以把向量放在第k条对角线上,在命令行输入diag(n,2),即可把向量放在右上的第二条对角线上。

3、最后,行输入diag(n,-2),即可把向量放在左下的第二条对角线上,这样操作就可以解决问题了。

本回答被网友采纳
第2个回答  推荐于2017-09-20
创建主对角线都是1的矩阵,也就是创建单位矩阵。matlab中提供了eye函数进行创建单位矩阵,其用法如下:

Y = eye(n) %返回n*n单位矩阵;
Y =
eye(m,n) %返回m*n单位矩阵;
Y = eye([m
n]) % 返回m*n单位矩阵;
Y = eye(size(A)) % 返回与A一样大小的单位矩阵;
Y = eye % 标量1

举例说明如下:
Y=eye(3,3)
输出
1 0 0
0 1 0
0 0 1
Y=eye(3,5)
输出
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
Y=eye(4,3)
输出
1 0 0
0 1 0
0 0 1
0 0 0
第3个回答  推荐于2017-09-30
>> eye(3)

ans =

     1     0     0
     0     1     0
     0     0     1

追问

抱歉啊 我问的不对 应该是要一个这样的矩阵
a=[1 0 1;0 1 0;1 0 1]

追答

那五阶是什么样式的

追问

1 0 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
1 0 0 0 1这样的

追答>> eye(3)+rot90(eye(3),1)-[0 0 0;0 1 0;0 0 0]

ans =

     1     0     1
     0     1     0
     1     0     1

本回答被提问者和网友采纳
相似回答