You cannot hide the contents securely, if you want the user to run your program. Even if you encrypt the MAT files, you need a function to decrypt them and then the values are found in clear text in the memory, from where they can be copied by a debugger.
P-coding the M-files is sufficiently secure, if the costs of the software are less than 10$ per line.
Compiled MEX files are a kind of encrypted already. It is not trivial to use a reverse-engineering to get the contents of the files.
I suggest to look how others solve the problem of shipping a program for testing: E.g. MathWorks delivers new releases of Matlab for beta-testing. All testers must confirm a non-disclosure agreement. This is more efficient than encrypting the files.
Best Answer