我有大小1 x 5
的向量v
和大小5 x 5
的对角矩阵D
。在我的例子,我有v = [0 1 2 3 4].
从矢量生成对角矩阵的简单方法?
第一个问题:我希望把对角的D
矢量V,使D(1,1) = 0
,D(2,2) = 1
,D(3,3) = 2
,D(4,4) = 3
和D(5,5) = 4
。
我写了这个MATLAB代码,但我相信,有在计算上更便宜的另一种自动方法。 所以我写的(并且从你优化)如下:
ii = 1;
for a = 1 : size(D,1)
for b = 1 : size(D,2)
if(a == b)
D(a,b) = v(1, ii);
ii = ii + 1;
end
end
end
第二个问题:完成第一个问题后,我现在需要检查,如果d的对角线值等于零。如果我能找到(以自动方式)在对角线上d的值等于零,因此由0.001替换它。
事实上,这可以写成了很多方式,例如:
for a = 1 : size(D,1)
for b = 1 : size(D,2)
if(a == b)
if(D(a,b) == 0)
D(a,b) = 0.001;
end
end
end
end
但我需要另一个可以在计算方面是非常便宜的自动方法。
任何帮助将不胜感激!
好的,谢谢ANW的回答:) – Christina
没有概率。如果我有时间回家,我会给它拍摄:) – George