a) N-dim array X to matrix Y:
>> Y = reshape2matrix(X,DIM);
b) Matrix Y to N-dim array X:
>> X = reshape2matrix(Y,DIM,SIZE);
Some MATLAB or users defined functions do not work through an specific dimension in a multidimensional array, whether because its not supported like in FILTFILT or the output is a matrix like in CORRCOEF.
A workaround on this problem is to specify the elements of X in the specific dimension we like to work (DIM) with some index. Another one is to transform this multidimensional array into a simple 2-dimensional matrix with the vectors of the DIM dimension as its columns.
This latter is exactly what this little program does. Besides, after working with the generated matrix, you can get the original multidimensional shape by calling once again this function with the third input SIZE of the original array.
Any comments and bug reports will be very appreciated!