Если у меня есть столбец дат и соответствующий столбец данных тома, например:Matlab: Использование Accumarray
31,3
31,2
31,1
31,5
07,2
07,3
07,4
07,2
07,3
07,5
07,3
07,1
07,1
07,2
07,3
30,5
06,4
Я хочу, чтобы сложить данные в правой колонке, для каждой даты. Если я использую накопитель следующим образом:
orgSumVinDay=accumarray(dayIdx,vv);
k=orgSumVinDay==0;
SumVininDay=orgSumVinDay;
SumVinDay(k)=[]
Это работает; Я получаю:
11
29
5
4
, который является правильным, потому что на 31-м, было 3+2+1+5=11
и т.д.
Однако, я хочу, чтобы получить столбец, показывающий кумулятивное добавление в течение каждого дня, так что она выглядит следующим образом:
3
5
6
11
2
4
9
11
14
19
22
23
24
26
29
5
4
и я не уверен, как это достичь. Благодаря!
Странный, 'tankarray (dayStr, minuteVolumes, [], @ cumsum)' дает ошибку «Функция cumsum» возвращает нескалярное значение ». Но если я использую другую функцию, например '@ max', результаты верны. – siegel
Это работает! 'cell2mat (accumarray (dayStr, minuteVolumes, [], @ (x) {cumsum (x)}));' Спасибо! – siegel