我想创建一个大小n x n
的正方形矩阵,其中对角线元素和左对角线都等于1其余元素等于0。
例如,如果矩阵为5 x 5,这将是预期结果:
1 0 0 0 0
1 1 0 0 0
0 1 1 0 0
0 0 1 1 0
0 0 0 1 1
我怎么能在MATLAB中做到这一点?
最佳答案
使用tril
函数很简单:
tril(ones(n),0) - tril(ones(n),-2)
如果你想要一个更粗的
1
s行,只需调整-2
:n = 10;
m = 4;
tril(ones(n),0) - tril(ones(n),-m)
如果您喜欢使用excaza建议的
diag
,请尝试diag(ones(n,1)) + diag(ones(n-1,1),-1)
但你不能这样控制条纹的“厚度”但是,对于2的厚度,它可能表现得更好不过你得测试一下。