Area di un segnale
Devo calcolare i vari pezzi di area positiva di un segnale, ho implementato il seguente codice:
Il problema è che sembra come se la i nel for venga incrementata soltanto di 1 e quindi mi ritrovo calcolate il doppio delle aree, mentre a me ne servirebbe soltanto la metà.. il for non incrementa già di suo la i? Se poi la incremento di nuovo nel corpo del for non viene così incrementata di 2 ogni ciclo?
k=1; for i = 2:length(Ascisse)-1 A = sum(sig_filtrato(Ascisse(i-1):Ascisse(i))); Area(k) = A; i = i+i; k = k+1 end
Il problema è che sembra come se la i nel for venga incrementata soltanto di 1 e quindi mi ritrovo calcolate il doppio delle aree, mentre a me ne servirebbe soltanto la metà.. il for non incrementa già di suo la i? Se poi la incremento di nuovo nel corpo del for non viene così incrementata di 2 ogni ciclo?
Risposte
No, il valore di i alla k-esima iterazione è quello contenuto in (2:length(Ascisse)-1)(k). Non ha importanza se ad un certo punto cerchi di incrementare il valore.. Puoi però scrivere 2:2:length(Ascisse)-1 se vuoi incrementare di due tutte le volte.