4

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

4

2 回答 2

5

该命令tril有一个额外的参数,用于控制准确使用哪个下三角。

A = eye(3) + 2*tril(ones(3), -1);
于 2012-12-25T11:39:52.230 回答
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 建议的那样生成它。

于 2012-12-25T11:37:11.913 回答