Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 将元素分配到矩阵的下三角部分_Matlab_Matrix_Assign_Diagonal - Fatal编程技术网

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

我正在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     1

如果您正处于创建这样一个矩阵的阶段,那么您应该按照Shai的建议生成它。

命令
tril
有一个额外的参数,用于控制要使用的下三角

A = eye(3) + 2*tril(ones(3), -1);

我删除了它,因为它与你的相比完全不足。@EitanT“完全”是一个非常有力的词。谢谢你的支持。嗯。。。那好吧。我发布了一个不同的方法,这取决于OP的愿望。我复制并粘贴了你的代码:a=eye(3);idx=万亿(真(尺寸(A),-1));A(idx)=2,但我仍然得到单位矩阵。我做错了什么?@user1928113对不起,我忘了把
大小(A)
后面的括号合上,你把它们放错地方了。请尝试固定答案。