我想创建一个矩阵
[1 2;
1 3;
1 4;
1 5;
2 3;
2 4;
2 5;
3 4;
3 5;
4 5 ]
当大小为 5 时。我的目标是大小大于 100。如何在 MATLAB 中使用 Vertorization 创建这样的矩阵?
我想创建一个矩阵
[1 2;
1 3;
1 4;
1 5;
2 3;
2 4;
2 5;
3 4;
3 5;
4 5 ]
当大小为 5 时。我的目标是大小大于 100。如何在 MATLAB 中使用 Vertorization 创建这样的矩阵?
您正在寻找二项式系数,因此请使用内置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
一种解决方案:
[r,c]=find(tril(ones(N),-1));
result = [c,r];
作为奖励,您可以使用以下方法获取此类矩阵中的行数
nrows = nchoosek(N,2);