MATLAB: Movendo a janela do integrador (soma) com tamanho variável, com base em uma condição
Gostaria de definir os índices inicial e final de uma janela de integrador (soma) em movimento com base na soma acumulada dos valores dearray
. Cada janela deve ter uma soma acumulada menor ou igual a um limite.
oend_index
desta janela está avançando uniformemente em 1 para as janelas futuras, porém ostart_index
depende dos valores dearray
. start_index
pode avançar, permanecer o mesmo ou voltar (valores negativos); portanto, o tamanho dessa janela em movimento não é fixo.
Por exemplo:
array = [ 1 0 2 1 1 2 0 0 1 2 0 1 0 1 1]
;
Com ostart_index = 1
, a soma acumulada dearray
será 5 emend_index = 5
, para a primeira janela.
Agora, para a próxima janela, oend_index
é adiantado por 1, de modo que o novoend_index = 6
. Gostaria de saber como encontrar o novostart_index
calculando de volta a soma acumulada do novoend_index
de modo acumsum
é menor ou igual a 5 para a nova janela também. Nesse caso, o novostart_index = 4
.
Alguma sugestão de como isso pode ser feito?
Obrigado.