From: Jonathan Hall on
I have a legacy C program which takes a proprietary data file and converts it to a .mat. The systems I have to run on are HP-UX and Solaris 9. Matlab version is 7R14 SP2. The C program is being run OUTSIDE of Matlab, so MEX is not an option.

I know I'm stuck with ancient tech here, but that's all I have to work with.

The problem: the C program uses matOpen to open a file, then various putVariables are used to load the data, and matClose is called to close the file. This works fine, a .MAT is created. However, it is not compressed. I am passing "wz" to matOpen, which, according to the documentation, is all you need to do to create a compressed .MAT file.

If I open the created .MAT and save it in the Matlab GUI, a much smaller .MAT file is outputted, still containing all the data (this would be how I know the original isn't compressed).

I also tried modifying the matcreat.c example (MATLAB/external/examples/eng_mat) to use "wz", and saw no reduction in the file size.

Now, people have claimed that it worked previously, though I haven't seen any evidence of that. I'm sure we must have messed something up by installing an update, or getting our library paths wrong, but I can't track down the issue... any thoughts?