MATLAB's standard "sortrows" function provides identical functionality (sorting a cell array with columns of strings and/or columns of numerics), but also allows these to be any class of numeric, not just 'double' like in this submission. In fact "sortrows" also sorts plain-old numeric and char arrays, which is a significant advantage over this submission. Some people may appreciate that this submission is a little faster than "sortrows", although this does not seem to be intentional. This submission has reasonably tidy code, though a few things are needed to make it really useful to use:
- The H1 line should be more descriptive (e.g.: 'sort the rows of a cell array containing columns of numeric or char data').
- At least one complete (working) example, preferably more.
- A list of functions in a 'See Also' line.
Some points detract also from the quality of the output:
- Accepts an N-D cell array, but reshapes this to return a 2-D cell array with the same number of rows as the input array.
- Does not return the sort indices.
- Though the documentation says that it works with 'mixed cell arrays containing character strings and numeric values', in fact each column must contain either char or numeric data exclusively, just like "sortrows" does: it really would be a significant advantage over "sortrows" if true mixed sorting had been implemented in this submission.
Although the function (mostly) does what is claims to do, there seems little advantage to using this submission over the standard MATLAB function "sortrows", which provides the same functionality over a wider range of data classes.
Jessica also observed in her comment that this submission does not provide a natural-order sort. Several of my submissions provide natural-order sorting, e.g. for sorting the rows of a cell of strings:
Or for sorting a cell array of filenames:
Both of these require this customizable natural-order sort function: