The routines solveD.m (binary
labels) and solveDord.m
(ordinal labels) use YALMIP to
solve the SDPs inside MATLAB, and return a solution (i.e. learned
matrix). To use them, you must install YALMIP, as
well as one of its interfaced solvers.
The routines printSDPA.m (binary labels) and printSDPAord.m (ordinal labels) produce a file containing the relevant semi-definite program in standard sparse-SDPA format. You should then solve this problem with an external solver, preferably one specializing in large sparse SDPs, such as CSDP or DSDP. The routines readSDPA.m and readSDPAord.m read the solution produced by the external solver, and extract from it the learned matrix.
UPDATE: The new YALMIP 3 (released October, 2004) handles the SDPs efficiently, and introduces only a small (a few seconds) overhead to the time it takes to solve the problems directly with CSDP or DSDP. Using the YALMIP-based solveD.m and solveDord.m is now the recommended way of solving the SDPs from within MATLAB (instructing YALMIP to use CSDP or DSDP). The routines print/readSDPA/ord are still much faster, but are more cumbersome if all you need is to find a MMMF from within MATLAB (they are useful if you prefer solving the SDP externally, e.g. on another machine or at a later time). Note that YALMIP 2.4 introduces a very significant overhead for these problems---upgrading to YALMIP 3 is highly advisable.
A routine solveP.m that sets up the primal SDP directly, rather then the dual SDP, and uses YALMIP to solve it, is also provided. This approach is much less preferable, and will only work on tiny problems. The routine is provided for reference only.
All of the above routines are also available in a single gziped tar file and in a single ZIP archive.