我正在使用eye(3)
在MATLAB中创建对角矩阵。如何仅将数字“2”分配给主对角线下的元素?
答案 0 :(得分:5)
命令tril
有一个额外的参数,用于控制准确使用哪个下三角形。
A = eye(3) + 2*tril(ones(3), -1);
答案 1 :(得分:3)
如果您对将元素分配到已存在的矩阵感兴趣,可以使用tril
与Shai的答案类似的方式,并将其与逻辑索引结合使用。例如:
A = eye(3);
idx = tril(true(size(A)), -1); % # Lower triangular half
A(idx) = 2
哪个应该产生预期的结果:
A =
1 0 0
2 1 0
2 2 1
如果您正处于创建此类矩阵的阶段,那么您应该像Shai建议的那样生成它。