【问题标题】:How to do element-wise calculation on all element pairs [closed]如何对所有元素对进行元素计算[关闭]
【发布时间】:2013-10-22 21:22:39
【问题描述】:

a=[4 2 5 9]

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

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

如何在 MATLAB 中做到这一点?

【问题讨论】:

  • 我不建议让我们来解决你的作业,要付出一些努力

标签: matlab combinations


【解决方案1】:

您不需要for 循环:

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

【讨论】:

  • 我喜欢这个,因为它回答了问题,同时 OP 不能使用它(大概用于介绍 MATLAB 类)!
  • 很好的解决方案路易斯。我要发布的解决方案是一个双循环。他要求它:)
  • @DangKhoa Er...我没想到! :-)
  • @DangKhoa 搞笑:)
【解决方案2】:
    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

【讨论】:

  • 请加一点解释性文字。
  • 函数在这里解释:mathworks.de/de/help/stats/combnk.html
  • -1:此解决方案仅在 OP 安装了 Statistics Toolbox 时才有效,解决方案中没有明确说明。
猜你喜欢
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 2018-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多