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.

 採用された回答

Andrei Bobrov
Andrei Bobrov 2011 年 11 月 12 日

1 投票

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 件のコメント

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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeInterpolation についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by