Я довольно новичок в Matlab и не могу решить следующую проблему:
У меня есть три вектора столбцов, "День", "Имя", "Значения" каждые 300x1, и мне нужно суммировать «Значения» (совокупный) в определенном диапазоне, который зависит не только от вектора «Имя» , но также от вектора «День» .
Точнее , я хочу суммировать значения в векторе "Значения" для каждой категории (вектор "Имя" ) но только для определенного диапазона (вектор "День" ), скажем, я хочу суммировать все "Значения" начиная с "День" 2, «Результат» -вектор должен выглядеть (сокращенный пример):
| Day | Name | Values | Result |
|-----|------|--------|------------|
| 1 | A | 2 | 0 |
| 1 | C | 9 | 0 |
| 1 | B | 7 | 0 |
| 2 | D | 1 | 1 |
| 2 | B | 1 | 1 |
| 2 | A | 3 | 3 |
| 2 | D | 4 | 5 |
| 3 | D | 9 | 14 |
| 3 | B | 1 | 2 |
| 3 | C | 3 | 3 |
| 3 | A | 1 | 4 |
| 4 | D | 3 | 17 |
Позже я хотел бы изменить диапазон, например, начиная суммировать после «День» 2, «День» 3 и т. Д., Которые необходимо настроить для начального «Дня».
Для моего диапазона сумм, начинающегося с " Day " 2 Я создал следующий код, но он не работают вообще:
Result = zeros(size(Values));
a=unique(Name);
for k=1:length(a)
for i = 1:length(Name)
if Day(i) > 1
Result(ismember(Name,a(k)))=cumsum(Values(ismember(Name,a(k))));
end
end
end
Кто-нибудь может помочь? Большое спасибо заранее!