【问题标题】:Accessing a matrix in Matlab在 Matlab 中访问矩阵
【发布时间】:2011-06-24 02:13:38
【问题描述】:

假设用户输入数据如下。我定义我的矩阵是成本。我创建的矩阵是 3 x 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 x 3 矩阵,它会生成这样的矩阵:

cost = [c11 c12 c13            

         c21 c22 c23

         c31 c32 c33

         c41 c42 c43]

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

【问题讨论】:

  • 您的标题应始终描述您遇到的问题类型,SO 社区认为您“卡在编码中”,因为您在此处发布。

标签: user-interface matlab matrix if-statement


【解决方案1】:

为什么要显式创建变量 c11、c12、...?当然,像这样访问方程中的矩阵会更容易:

λ = ((8*cost(1,3)*cost(2,3)*cost(3,3)*Pdt)+(4*cost(1,2)*cost(2,3)*cost(3,3 )+(4*cost(1,3)*cost(2,2)*c(3,3))+(4*cost(1,3)*cost(2,3)*cost(3,2) ) ./ (4*cost(2,3)*cost(3,3))+(4*cost(1,3)*cost(3,3))+(4*cost(1,3)*cost(2, 3)));

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

如果大小(成本,1)== 3

  %equation for matrix size 3x3

其他

  %equation for matriz size 4x3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多