Matlab Code by Mark Schmidt

Summary

This package contains the most recent version of various Matlab codes I released during my PhD work. I would recommend downloading and using this package if you plan on using more than one of my Matlab codes. This is because this package includes all the more recent bug-fixes and efficiency-improvements, while in making this package I have updated my old code to make it compatible with the new code and newer versions of Matlab. Further, I typically do not update the individual packages unless I am making a major change (such as the updates of minFunc and UGM).

The particular packages included (from oldest to newest) are:


Examples

Each of the packages includes one or more demos that show how to use the code. Below is a list of all the available demos (the ones highlighted in blue consist of a single function that contains a series of demos):

minFunc lasso blogreg DAGlearn L1precision L1General minConf minFunc_examples.m UGM L1GeneralGroup UGMlearn crfChain L1General_examples.m PQN_examples.m thesis alphaBeta batching prettyPlot TMP_examples.m QNST_examples.m SAG

Updates

September 2013: November 2012: July, 2012: April, 2012: March, 2012: February, 2012: January, 2012: November, 2011: August, 2011: March 2011:

Download

To get the complete set of most recent Matlab .m and .mex files, download code.zip.

Note that some of these packages use Matlab's optimization and/or statistics toolbox (they will say that functions like 'quadprog' or 'exprnd' are not found if these toolboxes are present). Also, several of the demos use graphViz for displaying graphs (it will say that 'neato' is not found if graphViz is not on the path). On architectures other than Windows, you can add graphViz to the Matlab path by using the function setGraphVizPath (this assumes the graphViz binaries are located in /usr/local/bin). To use the UGMep code (and substantially speed up the methods based on graph-cuts in UGM), you will need to have the mex wrapper to the maxflow code.

To add all folders in the zip file to the Matlab path, extract the contents of the zip file and then (in Matlab) type 'addpath(genpath(markSchmidt_dir))', where 'markSchmidt_dir' is the location of the extracted directory.

I have included compiled mex files for several operating systems, but if they are not included for your operating system then you will get an error that looks like: ??? Undefined function or method 'UGM_Decode_ExactC'. To compile most of the mex files for your operating system, run mexAll. This functions tries to compile all files except those associated with the crfChain code.

To compile the mex files associated with the crfChain code on Linux, run mexCrfChain. In order to compile the crfChain mex files on Windows, you can use MinGW and Gnumex. For compiling on Macs, you need to install Xcode.



Mark Schmidt > Software > Current Versions