2011-02-09 133 views
0

假設用戶輸入數據如下。我定義我的矩陣是成本。我創建的矩陣是3乘3矩陣。所以矩陣應該形成這樣的:在Matlab中訪問矩陣

cost = [c11 c12 c13    

     c21 c22 c23 

     c31 c32 c33] 

因爲我要顯示的一組行,我不喜歡這樣寫道:

c1 = cost(1,:); % it will become c1 = c11 c12 c13 

c2 = cost(2,:); % it will become c2 = c21 c22 c23 

c3 = cost(3,:); % it will become c3 = c31 c32 c33 

然後我想在矩陣中的值。我這樣做。

c11 = cost(1,1); 

c12 = cost(1,2); 

c13 = cost(1,3); 

c21 = cost(2,1); 

c22 = cost(2,2); 

c23 = cost(2,3); 

c31 = cost(3,1); 

c32 = cost(3,2); 

c33 = cost(3,3); 

所以這是我想用於這種類型的矩陣的公式。

lambda = 
((8*c13*c23*c33*Pdt)+(4*c12*c23*c33)+(4*c13*c22*c33)+(4*c13*c23*c32)) ./ (4*c23*c33)+(4*c13*c33)+(4*c13*c23)); 

所以我的問題是,如果我想×3矩陣,使4,它會產生這樣的矩陣:

cost = [c11 c12 c13    

     c21 c22 c23 

     c31 c32 c33 

     c41 c42 c43] 

,我想用這個矩陣方程(4由3)是完全不同的。那我該怎麼做呢?我是否需要使用if else語句?或者做什麼?誰能幫我解決這個問題嗎?任何人都可以創建代碼?

+2

標題應該始終描述您有問題的類型,多所社區假設你是「堅持與編碼」,因爲你張貼在這裏。 – Calum 2011-02-09 12:05:00

回答

1

爲什麼你明確地創建變量c11,c12,...?當然,它會更容易剛剛訪問矩陣在你的公式是這樣的:

的λ= ((8 *成本(1,3)*成本(2,3)*成本(3,3)* PDT)+(4 *成本(1,2)*成本(2,3)*成本(3,3)+(4 *成本(1,3)*成本(2,2)* C(3,3) )+(4 * cost(1,3)* cost(2,3)* cost(3,2))./ (4 * cost(2,3)* cost(3,3))+(4 *成本(1,3)*成本(3,3))+(4 *成本(1,3)*成本(2,3)));

對於您的問題,是的,只需使用簡單如果說明如下:

if size(cost,1)== 3

%equation for matrix size 3x3 

其他

%equation for matriz size 4x3 
+0

謝謝你ghaul =) – raymond 2011-02-09 16:04:58