I'm writing some GPU code that is called from Matlab. I don't have a Matlab licence, so I test everything using Octave (it has mex support). Works just fine.
This is consultancy work in geophysics. I'm writing code for a colleague to use (he does have a Matlab licence) who is working with a mining company.
Actually, if anyone is using this as a reference, I should add that it's not 100% identical. Octave doesn't support nested functions (it will interpret them as separate, but doesn't have any notion of closures, so if you reference a value in an outer scope it will fail). Also, at least one routine returns data in a slightly different format (listing files in a directory - the Octave approach is much simpler, and leads to cleaner code, but causes problems with inter-op). But moving a fairly large hacked-together (ie growing from exploratory data analysis) set of scripts from Matlab to Octave took less than an hour of testing and editing.
This is consultancy work in geophysics. I'm writing code for a colleague to use (he does have a Matlab licence) who is working with a mining company.