Im trying to generate a specific type o matrix in Matlab.
I need to modify it for specific types of data with the following rules:
First I have to choose a grade
g
(max 6 let's say) then I have to choose the number of elements per rown
(max 18) ;These numbers are the powers of a specific polynomial of grade
g
;The sum per row in the matrix is not allowed to be bigger than the chosen
g
grade ;The biggest element per row is the chosen
g
.
For g = 2
, n = 2
the matrix will look like this:
A = [0 0;
0 1;
1 0;
0 2;
2 0;
1 1]
For g = 2
, n = 3
the matrix will look like this:
A = [0 0 0;
0 0 1;
0 0 2;
0 1 0;
0 2 0;
1 0 0;
2 0 0;
0 1 1;
1 0 1;
1 1 0]
How can I generate all possible combinations of an array elements?
Ex : given v = [0 1 2];
Result = [0 0 0;
0 0 1;
0 1 0;
0 1 1;
1 0 0;
1 0 1;
1 1 0;
1 1 1;
0 0 2;
0 2 0;
2 0 0;
2 0 1;
2 1 1;
2 1 2;
...]
and so on...
I've tried this with perms
, nchoosek
, repelem
, repmat
, for-loops
, unique
, matrix concatenations
, everything but I couldn't be able to find and algorithm.