假设用户输入数据如下。我定义我的矩阵是成本。我创建的矩阵是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语句吗?还是做一段时间?谁能帮我解决这个问题?谁能创建代码?
回答:
为什么要显式创建变量c11,c12,...?当然,像这样访问方程式中的矩阵会更容易:
lambda =((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语句,例如:
如果size(cost,1)== 3
%equation for matrix size 3x3 其他
%equation for matriz size 4x3
更多&回答...