在Matlab中访问矩阵

时间:2011-02-09 11:58:49

标签: user-interface matlab matrix if-statement

假设用户输入数据如下。我定义我的矩阵是成本。我创建的矩阵是3乘3矩阵。所以矩阵应该像这样形成:

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));

所以我的问题是,如果我想制作4乘3矩阵,它会产生这样的矩阵:

cost = [c11 c12 c13            

         c21 c22 c23

         c31 c32 c33

         c41 c42 c43]

我想用于这个矩阵(4乘3)的等式是完全不同的。那我该怎么做呢?我是否需要使用if else语句?还是做什么?谁能帮我解决这个问题?任何人都可以创建代码吗?

1 个答案:

答案 0 :(得分:1)

为什么要显式创建变量c11,c12,...?当然,只需访问等式中的矩阵就更容易了:

  

lambda =   ((8 *成本(1,3)*成本(2,3)*成本(3,3)* PDT)+(4 *成本(1,2)*成本(2,3)*成本(3,3- )+(4 *成本(1,3)*成本(2,2)* C(3,3))+(4 *成本(1,3)*成本(2,3)*成本(3,2) )./   (4 *成本(2,3)*成本(3,3))+(4 *成本(1,3)*成本(3,3))+(4 *成本(1,3)*成本(2, 3)));

对于你的问题,是的,只需使用简单的if语句,如下所示:

  

如果尺寸(成本,1)== 3

  %equation for matrix size 3x3
     

否则

  %equation for matriz size 4x3
相关问题