Maybe I'm missing something, but I think this code produces weird behavior with vectors of low values, e.g. returning entropy of 0 for [1:10] * .0001.
Run this code and see for yourself:
a = ;
for i = 1:20e4
a(i) = entropy([1:10] .* i/10e4);
The mex dlls compiled I believe are 32bit. If you have a 64bit MATLAB application you will not be able to run this software.
To solve this
1) Run makeosmex.m found in the source directory "mi".
2) This failed for me as the log functions in the c++ files needed to be adjusted.
3) For each failure, find the line in the .cpp file where the mex compiler falls over (this will be output to the matlab command window) and replaced log(2) with log(2.0)
Best of luck.