我正在使用IBM ilog cplex优化器来解决一个大整数编程问题。我必须依靠MATLAB来生成数据集,我可以将其以适当的格式复制到.dat文件中。有了这个.dat文件,我可以解决IBMilog-cplex环境中的问题。接下来,我尝试将求解的值写在.txt或.m文件中,这样我就可以在MATLAB中导入这些值,并将它们用于图形表示。然而,当我尝试这样做时,如果变量太长,那么它将被写在多行中,如下所示:
x_b = [0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 1 0];
因此,将其作为数组导入MATLAB变得不可能。那么,有人能提出一个更好的方法吗?
谢谢。
在OPL CPLEX中,如果您编写.mod
range r=1..80;
int x_b[r]=...;
execute
{
var f=new IloOplOutputFile("exp.txt");
for(var i in r) f.writeln(x_b[i]);
f.close();
}
并使用你的.dat
x_b = [0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 1 0];
您将获得exp.txt
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
您可以使用fscanf从Matlab 中读取