Do you have an estimate for min() of your data, and max() of your data?
4 significant figures after the decimal point requires 14 bits. Signed would require 1 more. If your value before the decimal point can exceed 1, you would need at least 2 bits for it. This plausibly gets you beyond 16 bits per value. 16 bits per value would allow you to pack 2 values into 32 bits (the space occupied by 1 float), but we could expect that the compressibility of the data would go down (.mat files are usually compressed.) It is not certain that the space would be reduced.
