Скажем, у меня есть массив значений:
values = 1:100;
массив индексов:
interval_indices = [40 45 80];
и массив величин, которые я хотел бы добавить к элементам в values
:
quantities_to_add = [5 -9 30];
Я ищу компактное выражение в MATLAB (возможно, использующее accumarray
?), Которое позволяет мне добавлять значения quantities_to_add
к элементам в values
в зависимости отиндексы, указанные как indices
.
Если бы я делал это вручную:
values(1:interval_indices(1)) = values(1:interval_indices(1)) + ...
quantities_to_add(1);
values(interval_indices(1):interval_indices(2)) = values(interval_indices(1):interval_indices(2)) + ...
quantities_to_add(2);
% and so forth
values(interval_indices(end-1):interval_indices(end)) = values(interval_indices(end-1):interval_indices(end)) + ...
quantities_to_add(end);