我正在使用cumsum
函数在matlab中工作。现在我想知道数组的cumsum何时到达它与数字最接近的位置。例如;
cumsum(week1(1,13:17))
何时到达距离800最近的位置。
week 1 13:17 = 200 200 200 400 900
cumsum(week1(1,13:17))= 400 600 1000 1900
那我怎么才能发现它最近的位置是15?
感谢您的时间。
答案 0 :(得分:0)
>> A=[200 200 200 400 900];
>> sum=cumsum(A);
>> i=1;
while sum(i)<=800
i=i+1;
if sum(i)>800
i=i-1;
end
end
>> i
i =
3
现在你有了
13:17
ans =
13 14 15 16 17
你可以轻松确定
答案 1 :(得分:0)
找到距离达到某个值的最小距离的位置可以这么简单:
w = [200 200 200 400 900];
cw = cumsum(w);
[v, loc] = min(abs(cw-600))
请注意,在这种情况下,您会对loc+12
感兴趣,因为在此示例中w
仅包含元素13以及更多内容。