Calcola la derivata ([i] - [i - 1]) in Ruby
-
06-07-2019 - |
Domanda
Trivial usando un ciclo for o each_with_index, chiedendosi solo se ci fosse un modo migliore per farlo usando la sintassi di Ruby.
Devo creare un nuovo array che è la derivata dell'array di origine, ad esempio:
for(int i = 1; i < oldArray.length; i++)
{
newArray[i] = oldArray[i] - oldArray[i-1]
}
Soluzione
old_array.each_cons(2).map{|x, y| y - x}
Enumerable # each_cons
chiamato con una dimensione del blocco di 2 ma senza blocco restituisce un Enumeratore che eseguirà l'iterazione su ciascuna coppia di elementi consecutivi in ?? old_array
. Quindi usiamo solo map
per eseguire una sottrazione su ciascuna coppia.
Altri suggerimenti
last=0
new = old.map{|v|x=v-last;last=v;x}[1..-1]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow