次のようなマトリックスを作成したい
[1 2;
1 3;
1 4;
1 5;
2 3;
2 4;
2 5;
3 4;
3 5;
4 5 ]
サイズが 5 の場合。100 より大きいサイズを目指しています。MATLAB でバートル化を使用して、このような行列を作成するにはどうすればよいですか?
次のようなマトリックスを作成したい
[1 2;
1 3;
1 4;
1 5;
2 3;
2 4;
2 5;
3 4;
3 5;
4 5 ]
サイズが 5 の場合。100 より大きいサイズを目指しています。MATLAB でバートル化を使用して、このような行列を作成するにはどうすればよいですか?
二項係数を探しているので、組み込み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
1 つの解決策:
[r,c]=find(tril(ones(N),-1));
result = [c,r];
おまけとして、このようなマトリックスの行数を取得できます
nrows = nchoosek(N,2);