need help in creating matrix.....please

I wanna create matrix like this A(m,n), which n defined by user input. matrix A is consist of combination between number 1,2,3. then the form of this matrix if n=3: A=[1 1 1; 2 1 1; 1 2 1; 1 1 2; 2 2 1; 2 1 2; 1 2 2; 2 2 2; 3 1 1; 1 3 1; 1 1 3; 3 3 1; 3 1 3; 1 3 3; 3 2 2; 2 3 2; 2 2 3; 1 2 3; 1 3 2; 2 1 3; 2 3 1; 3 2 1; 3 1 2; 3 3 3] please help me to create this matrix.
thanks in advance.

 Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 12 de Nov. de 2011
a = 1:3;
n = 3;
k = perms(reshape(ones(n,1)*a,1,[]));
aout1=unique(k(:,1:n),'rows');
OR
a2 = cell(1,n);
[a2{:}] = ndgrid(a);
aout2 = cell2mat(cellfun(@(x)x(:),a2,'un',0));

3 comentarios

andy ganteng
andy ganteng el 12 de Nov. de 2011
first choice doesn't work if n>3, but the second choice was better......thank u very much
Andrei Bobrov
Andrei Bobrov el 12 de Nov. de 2011
corrected 1st variant
andy ganteng
andy ganteng el 12 de Nov. de 2011
wait, i have n=20, then both of code above cannot work....please answer...thanks

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by