MATLAB: All Possible Matrix Permutations

char arraymanipulationMATLABmatrixpermutations

I am trying to write a program that takes integers (or any value, really) and square matrix size m as inputs and returns all possible mxm matrices with those inputs as matrix entries. It would look something like this example input:
allMatrices([0 1],2)
Which would return all 2×2 matrices with 0 and 1 as matrix entries ([0 0; 0 0], [0 0; 0 1], [0 0; 1 1], etc). I would also like to store the matrices so that they can be called individually (M_1, M_2, and so on).
My current strategy is to use
A = unique(nchoosek(repmat('10', 1,4), 4), 'rows')
This lets me index the values A(1:4) as characters for the first 4 entries in a 2×2 matrix, at which point I can use a for-loop to index the remaining entries.
I need to know how to go from my 4 character array ('0000') to a 2×2 matrix ([0 0;0 0]).
And, as always, if there is a more elegant way to do this, please let me know.
Thanks!

Best Answer

Starting with char array '10' to create such matrices does not seems to be a good strategy. It is possible, but better to use numeric datatypes from the beginning.
The following code creates a 3D matrix with all possible permutation along the 3rd dimension.
N = 2;
n2 = N^2;
x = repmat({[0, 1]}, 1, n2);
M = reshape(combvec(x{:}), 2, 2, []);
Result
>> M(:,:,1)
ans =
0 0
0 0
>> M(:,:,2)
ans =
1 0
0 0
>> M(:,:,5)
ans =
0 1
0 0
>> M(:,:,end)
ans =
1 1
1 1
It shows a few permutations of the matrix.