假设用户输入数据如下。我定义我的矩阵是成本。我创建的矩阵是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语句?还是做什么?谁能帮我解决这个问题?任何人都可以创建代码吗?
答案 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