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

Más información sobre Interpolation en Centro de ayuda y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by