刚学的时候有各种问题,比如这次遇到的如何定义三维矩阵,找遍了GOOGLE居然都找不到一个答案,Manual上说的更是模糊,因此在这里我要详细说明一下。
首先要define你的三维矩阵,因为三维要用到二维,因此也需要定义二维矩阵。
typedef IloArray<IloIntVarArray> IntVarMatrix2; //定义二维矩阵
typedef IloArray<IloArray<IloIntVarArray> > IntVarMatrix3; //定义三维矩阵
然后定义你的三维变量,这里我的三维变量形式为V[i][j][k],其中i=1..nbnodes, j =1..nbnodes, k=1..nblines;
IntVarMatrix3 V(env,nbnodes); //定义第一维的长度
for(i = 0; i < nbnodes; i++){
V[i] = IntVarMatrix2(env, nbnodes); //定义第二维的长度
for(j = 0; j < nbnodes; j++){
V[i][j] = IloIntVarArray(env, nblines, 0, RAND_MAX); //定义第三维的长度,也就是每个V[i][j][k]的范围是0到无穷大,之前我用IloInfinity不知道为什么编译后求解x的上限为一个负的大数,因此我就改为了RAND_MAX.
}
}
热门帖子
2014年4月15日星期二
2014年4月11日星期五
Export matrix in Matlab to .txt file 使用Matlab导出数据到txt文件
虽然很简单,但是还是要记录一下,在你的matlab里输入这个code:
dlmwrite(filename, M, 'delimiter', '\t', 'newline','pc');
这里filename代表你要输出的txt文件名称,前面加路径就可以输出到你所需要输出的那个路径的文件里,M代表你要输出的在Matlab中的矩阵名称,
‘delimiter'代表数据中间的间隔形式,后面的'\t'表示每两个数据间用tab间隔,也可以用' ',或者','分别是中间为空格和逗号,
想要导出的数据工整的话就需要加后面的
'newline','pc',这样每行数据导出会自动断点。
订阅:
博文 (Atom)