我正在使用 MATLAB 在 MATLAB 中创建一个对角矩阵eye(3)
。如何仅将数字“2”分配给主对角线下的元素?
问问题
3500 次
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 回答