2014-03-24 52 views
0

創建的行矩陣的元素我有一個是通過以下公式的預定義一個其中其他元件通過方程

for xxx = 1 : xMid_p - 2 
    ln_p(1,xxx) = abs(radius_p(1,1) - radius_p(xxx+1)); 
end 

創建但是我需要這個方程具有零作爲其第一元素的矩陣。我明白我可以通過

ln_p(1,1) = 0; 

這樣做,但我怎麼結合這使作爲第一個元素是零和行矩陣的其餘部分從上面的公式服用。


解決方案:

這是很簡單的,涉及串聯與ln_p矩陣簡單的1x1矩陣。

lnZero(1,1) = 0 

for xxx = 1 : xMid_p - 2 
    ln_p(1,xxx) = abs(radius_p(1,1) - radius_p(xxx+1)); 
end 

ln_p = horzcat(lnZero,ln_p) 

回答

1

骯髒的把戲也許;使用內循環 -

ln_p(1,xxx) = (xxx~=1).*(abs(radius_p(1,1) - radius_p(xxx+1))); 
+0

這將第一個初始值設置爲0,即前一個第一個值不再在數組中。爲了清楚說ln_p = 1,2,3,4,5我想能夠重新創建它,所以它是ln_p = 0,1,2,3,4,5。也就是說,行數組包含一個額外的元素,不管方程如何,它都是0,並且出現在數組的開始處 – user3454983

+0

您想要將第一個值「ln_p(1,1)」設置爲零,覆蓋之前的第一個值。這不是你想要的嗎? – Divakar

+0

@ user3454983 Ah gotch ya! – Divakar

0

只需使用矢量索引和簡單的橫向拼接:

ln_p(1, 1:xMid_p-1) = [0 abs(radius_p(1)-radius_p(2:xMid_p-1))]; 

如果您ln_p是空的循環之前和radius_p正是xMid_p-1元素長,可以簡化這:

ln_p = [0 abs(radius_p-radius_p(1))]; 
相關問題