3

次のようなマトリックスを作成したい

[1 2;
 1 3;
 1 4;
 1 5;
 2 3;
 2 4;
 2 5;
 3 4;
 3 5;
 4 5 ]

サイズが 5 の場合。100 より大きいサイズを目指しています。MATLAB でバートル化を使用して、このような行列を作成するにはどうすればよいですか?

4

2 に答える 2

7

二項係数を探しているので、組み込みnchoosekコマンドを使用します。たとえば、質問のマトリックスは次のように生成できます。

A = nchoosek(1:5, 2)

これにより、次の結果が得られます。

A =
     1     2
     1     3
     1     4
     1     5
     2     3
     2     4
     2     5
     3     4
     3     5
     4     5
于 2013-04-09T16:12:49.953 に答える
2

1 つの解決策:

[r,c]=find(tril(ones(N),-1));
result = [c,r];

おまけとして、このようなマトリックスの行数を取得できます

nrows = nchoosek(N,2);
于 2013-04-09T16:09:32.023 に答える