基于列标准累积和的单独矩阵(MATLAB)

时间:2012-11-03 13:53:14

标签: algorithm matlab sorting

我有一个类似于以下内容的数据集:

a = [1 11; 2 16; 3 9; 4 13; 5 8; 6 14];

我希望按以下标准分成几个矩阵: 从第一列开始,构造集合,其中第二行的总和在19 - 到 - 25范围内。

所以输出会是这样的:

a1 = [1 11; 3 9]
a2 = [2 16; 5 8]
a3 = [6 14]

其中a1 = 20,a2 = 24,a3不符合标准但是最后一个。

这可以包含并从FOR循环输出吗?

编辑:如何组合的标准:我希望从头开始(第一行)并添加到下一行。如果总和大于25,则将跳过该行直到下一次迭代。每次迭代都应输出一个单独的矩阵(a1,a2,a3)。

1 个答案:

答案 0 :(得分:0)

我想我有一些有用的伪代码。

对于一个我不会通过删除列来修改矩阵。相反,我会保留一个使用列的列表。

我会使用这样的求和:

used = false(1,num lines)
for i=1:num lines
  if used(i) continue
  curr_use = i
  for j=i+1
     if used(j) continue
     if cant_add(j) continue
     Concat j to curr_use
  end
  used(curr_use) = true
end