MATLAB: Map a matrix 300 cells of matrices to a 2d matrix

column vectormatrix manipulation

I have a matrix M1 of size 1×300, which contains in each column, on the first and only row a cell with a matrix of size 28×28.
I want to convert each 28×28 matrix to a column vector and store them all as columns in a new matrix, so that the i-th column of the resulting matrix will represent the i-th column of the original matrix, but instead of cells with matrices, I'll have column vectors representing the smaller matrices.

Best Answer

dummy = repmat({reshape(1:784,28,28)},1,300);
C = cell2mat(cellfun(@(x) [x(:)],dummy,'uni',0));
or simpler,
C = reshape([dummy{:}],28*28,[]);