Если у меня есть столбец дат и столбец данных, я использую этот код, чтобы найти накопленную сумму данных для каждой из дат, которые содержатся в третьей колонке:функции в пределах accumarray
orgcumulative=cell2mat(accumarray(day,data,[],@(x){cumsum(x)}));
k=orgcumulative==0;
CVD=orgCVD;
CVD(k)=[];
31,3,3
31,2,5
31,1,6
31,5,11
07,2,2
07,3,4
07,4,9
07,2,11
07,3,14
07,5,19
07,3,22
07,1,23
07,1,24
07,2,26
07,3,29
30,5,5
06,4,4
Теперь я хочу разделить каждую точку данных в течение дня на сумму данных в этот день. Например:
31,3,3,3/11
31,2,5,2/11
31,1,6,1/11
31,5,11,5/11 <-- 11 is the sum of data for the 31 date
07,2,2,2/29
07,3,4, %and so on...
07,4,9,
07,2,11,
07,3,14,
07,5,19,
07,3,22,
07,1,23,
07,1,24,
07,2,26,
07,3,29, <-- 29 is the sum of data for the 07 date
30,5,5,1
06,4,4,1
Если я пытаюсь:
fractions=cell2mat(accumarray(day,data,[],@(x){ data/sum(x) }));
Это разделит весь второй столбец каждой из сумм. Есть ли способ ограничить это, так что деление происходит только для членов второго столбца в течение каждого дня?
Благодаря тонну. Должен был подумать об этом! – siegel