给定向量x1, x2, ..., xN
,我需要为i = 1,...,N, j = i+1,...,N
创建一个向量(x_i + x_j)
。
例如,对于x1, x2, x3, x4
:
x1+x2, x1+x3, x1+x4, x2+x3, x2+x4, x3+x4
如何在没有循环的情况下获得良好的性能?
C=combnk(v,k(返回一个矩阵,该矩阵包含向量v的元素的所有可能组合,每次取k。
因此,如果您调用
combnk(x,2)
你得到
x3 x4
x2 x4
x2 x3
x1 x4
x1 x3
x1 x2
如果您依赖现在反转的顺序,请使用flipud
,然后调用sum
sum(flipud(combnk(x,2)),2)