在数组中添加值并与 Matlab 中循环内的阈值进行比较

失利

我被困在试图弄清楚这一点。我有一个数组:

a = [ 1 1 1 2 1 1 1 3 2 1 1 2 1 1 1]

我想要add the values in the array so that it equal to 10一旦添加的值达到 10,我希望数组再次开始添加值,直到它达到 10。我在这里面临两个问题,

1)如何添加数组,以便sum = 10每次。请注意,在数组中,有3. 如果我之前添加所有值3,我得到8并且我只需2要从3. 我需要确保将余数1添加到下一个数组中以获得 sum 10

2)一旦到达循环10并要求它继续求和到下一个值以获得另一个值,我如何打破循环10

我创建了一个循环,但它只适用于数组的第一部分。我不知道如何让它继续。代码如下:

a = [ 1 1 1 2 1 1 1 3 2 1 1 2 1 1 1]; 
c = 0; 

for i = 1:length(a) 
   while c < 10
      c = c + a(i);
   break
   end
end

请帮忙。谢谢

这应该做你正在尝试的。它显示每次总和等于 10 时的索引。用你的测试用例检查这个。rem存储每次迭代中的残差和,并在下一次迭代中结转。其余代码与您正在执行的操作类似。

a = [ 1 1 1 2 1 1 1 3 2 1 1 2 1 1 1]; 
c = 0; 
rem = 0;
i = 1;
length(a);
while(i <= length(a))
   c = rem; 
   while (c < 10 && i <= length(a))
      c = c + a(i);
      i = i + 1;
      if(c >= 10)
        rem = c - 10;
        break
      end
   end
   if(c >= 10)
      disp(i-1)
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章