![]() |
在Matlab中访问矩阵
假设用户输入数据如下。我定义我的矩阵是成本。我创建的矩阵是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语句吗?还是做一段时间?谁能帮我解决这个问题?谁能创建代码? [B]回答:[/B] 为什么要显式创建变量c11,c12,...?当然,像这样访问方程式中的矩阵会更容易: [INDENT] 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))); [/INDENT]对于您的问题,是的,只需使用一个简单的if语句,例如: [INDENT]如果size(cost,1)== 3 %equation for matrix size 3x3 其他 %equation for matriz size 4x3 [/INDENT] [url=https://stackoverflow.com/questions/4944551]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 04:48。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.