我有大小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