2011-02-09 184 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