Calcule o derivado ([i] - [i - 1]) em rubi
-
06-07-2019 - |
Pergunta
Trivial usando um loop ou cada_with_index, apenas imaginando se havia uma maneira melhor de fazê -lo usando a sintaxe do rubi.
Preciso criar uma nova matriz que seja a derivada da matriz de origem, por exemplo:
for(int i = 1; i < oldArray.length; i++)
{
newArray[i] = oldArray[i] - oldArray[i-1]
}
Solução
old_array.each_cons(2).map{|x, y| y - x}
Enumerable#each_cons
chamado com um tamanho de pedaço de 2, mas sem um bloco retorna um enumerador que itera sobre cada par de elementos consecutivos em old_array
. Então nós apenas usamos map
Para executar uma subtração em cada par.
Outras dicas
last=0
new = old.map{|v|x=v-last;last=v;x}[1..-1]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow