0

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

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

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

所以输出会是这样的:

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

其中a1=20,a2=24,a3 不满足条件,是最后一个。

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

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

4

1 回答 1

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
于 2012-11-03T18:24:17.703 回答