如何对所有元素对进行逐元素计算

时间:2013-10-22 21:22:39

标签: matlab combinations

a = [4 2 5 9]

我必须使用for循环编写代码来获取以下向量:

[4-2 4-5 4-9 2-5 2-9 5-9]

我怎样才能在MATLAB中做到这一点?

2 个答案:

答案 0 :(得分:4)

您不需要for循环:

result = tril(bsxfun(@minus,a(:).',a(:)),-1);
ind = tril(reshape(1:numel(result),size(result)),-1);
ind = ind(ind>0);
result = result(ind).'

答案 1 :(得分:0)

    a = [ 4 2 5 9]

    a =

         4     2     5     9

    s = combnk(a, 2)

    s =

         5     9
         2     9
         2     5
         4     9
         4     5
         4     2