0

私がやりたいのは、Matlabで最も簡単な方法で次のことを行うことです

2つの配列{1,2,3}{4,5,6}があるとしましょう。

アルゴリズムは私にすべての全単射を与えるはずです:

1-4 2-5 3-6 / 1-4 2-6 3-5 / 1-5 2-4 3-6 / 1-5 2-6 3-4 / 1-6 2-5 3-4 / 1-6 2-43-5

4

2 に答える 2

2

これは、2 番目の配列のすべての順列を取得することと同等であり、そのpermsための非常に便利な関数 があります。

于 2012-05-03T22:20:02.983 に答える
1

真実性と repmat で提案されているように perms を使用して 3D マトリックスを作成し、最初のマトリックスを複製します。

x = [1 2 3];
y = [4 5 6];

Y = perms(y);
X = repmat(x,length(perms(y)),1);

Result = cat(3,X,Y);
NicerResult = permute(Result, [2, 3, 1]);
于 2012-05-04T07:28:47.540 に答える