【发布时间】:2017-09-02 10:50:00
【问题描述】:
我一直试图弄清楚这一点。我有一个数组:
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,我只需要来自3 的2。我需要确保将余数(即 1)添加到下一个数组中以获得总和 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
请帮忙。谢谢
【问题讨论】:
-
给定
a的输出是什么? -
@SardarUsama 我不清楚你的问题。我将
a初始化为具有指定值的数组,就像在代码中一样,所以如果我在 Matlab 中运行a,它会给我那些指定的值。 -
这是我面临的问题之一,我需要添加数组值,这样一旦数组值的总和等于
10,我就会确定最后一个的索引对总和有贡献的数组。所以在数组a中,我有a[1] until a[8]的总和等于10。但是,正如问题的第(1)点所述,a[8]中会有余数,即1。我想将余数添加到a[9]中的下一个值,以获得另一个等于10的总和。我不确定我的解释是否清楚,但我希望我能从中找到一些答案。 -
@SardarUsama 预期的输出是
[8,15]
标签: arrays matlab for-loop while-loop