簡體   English   中英

如何將已解決的變量從 ILOG CPLEX 導出到 MATLAB?

[英]How to export solved variables from ILOG CPLEX to MATLAB?

我正在使用 IBM ilog cplex 優化器來解決大型 integer 編程問題。 我必須依賴 MATLAB 來生成數據集,我可以將它以適當的格式復制到 .dat 文件中。 使用this.dat 文件,我可以解決IBM ilog cplex 環境中的問題。 接下來,我嘗試將求解的值寫入 a.txt 或 am 文件,以便我可以將這些值導入 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();
}

並使用 your.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 讀取

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM