适用于类似下面描述的情景:
一辆车行驶每一段路程需要的时间分别是[1 5 3 6 7]分钟,我想知道这辆车第13分钟在哪一段路上。
matlab代码如下:
A = [1 5 3 6 7];
cumA = cumsum(A); % 用cumsum函数得到A的累积和
nextTimenodeStep = sum(cumA <= 13) + 1; % 得到13分钟时所在的step
% cumA <= 13是对cumA的每一项进行判断,是否<=13,得到的是logical数组
% sum(cumA <= 13)把上述logical数组相加得到logical数组中1的个数
向量化实现,避免for循环臃肿而低效的问题。