Matlab 将元素分配到矩阵的下三角部分
我正在MATLAB中使用Matlab 将元素分配到矩阵的下三角部分,matlab,matrix,assign,diagonal,Matlab,Matrix,Assign,Diagonal,我正在MATLAB中使用eye(3)创建一个对角矩阵。如何将数字“2”仅分配给主对角线下的元素?如果您有兴趣将元素分配到已存在的矩阵中,可以使用与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
eye(3)
创建一个对角矩阵。如何将数字“2”仅分配给主对角线下的元素?如果您有兴趣将元素分配到已存在的矩阵中,可以使用与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的建议生成它。命令
tril
有一个额外的参数,用于控制要使用的下三角
A = eye(3) + 2*tril(ones(3), -1);
我删除了它,因为它与你的相比完全不足。@EitanT“完全”是一个非常有力的词。谢谢你的支持。嗯。。。那好吧。我发布了一个不同的方法,这取决于OP的愿望。我复制并粘贴了你的代码:a=eye(3);idx=万亿(真(尺寸(A),-1));A(idx)=2,但我仍然得到单位矩阵。我做错了什么?@user1928113对不起,我忘了把
大小(A)
后面的括号合上,你把它们放错地方了。请尝试固定答案。