我想创建一个像
这样的矩阵[1 2;
1 3;
1 4;
1 5;
2 3;
2 4;
2 5;
3 4;
3 5;
4 5 ]
当大小为5.我的目标是大小超过100.如何在MATLAB中使用vertorization创建这样的矩阵?
答案 0 :(得分: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
答案 1 :(得分:2)
一个解决方案:
[r,c]=find(tril(ones(N),-1));
result = [c,r];
作为奖励,您可以使用
获取此类矩阵中的行数nrows = nchoosek(N,2);