将元素分配到矩阵的下三角部分

时间:2012-12-25 11:34:28

标签: matlab matrix assign diagonal

我正在使用eye(3)在MATLAB中创建对角矩阵。如何仅将数字“2”分配给主对角线下的元素?

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建议的那样生成它。