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.