3

我想创建一个矩阵

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

当大小为 5 时。我的目标是大小大于 100。如何在 MATLAB 中使用 Vertorization 创建这样的矩阵?

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

一种解决方案:

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

作为奖励,您可以使用以下方法获取此类矩阵中的行数

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