SeDuMi の自動実行用のファイルを作ってみた。あとは matlab -r autoSedumi とするだけで良い。
1: install_sedumi2 では fromsdpa 関数への path を通している
2: ./data/bench 以下に実行ファイル(*.dat-s)がある
3: pars.errors=1 で DIMACS errors を書き込む
4: tic, toc で実行時間(実時間)も書き込む
function autoSedumi
install_sedumi2;
pars.errors=1;
files = dir('./data/bench/*.dat-s');
for file_index = 1:length(files)
tic;
file_name = sprintf('./data/bench/%s', files(file_index).name);
result_name = sprintf('%s.result',file_name);
pars.fid = fopen(result_name,'w');
fprintf('Reading %sn',file_name);
[At,b,c,K] = fromsdpa(file_name);
fprintf('Solving %sn',file_name);
[x,y,info] = sedumi(At,b,c,K,pars);
t = toc;
fprintf(pars.fid, 'Execution time (real) = %fn', t);
end