vetor esparso

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

vetor esparso

Ailton Jose Rodrigues
Pessoal, estou com uma dúvida

Tenho duas tabelas a seguir representando dois vetores


v1 =  { [1]=4, [5]=7 }
v2=  { [3]=2 ,[5]=-3}


Quero obter a soma de v1+ v2 obtendo a tabela  { [1]=4, [3]=2, [5]=4} ou seja, somar somente os valores das chaves iguais.



Alguém pode ajudar ?


Abraços


--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em https://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: vetor esparso

Eric Chiesse
Copia o primeiro vetor para um novo vetor. 
Depois itera sobre o segundo e se a chave for igual a alguma existente no vetor de resultado soma o valor.
No final retorna o vetor de resultado.
---
Eric


Em seg, 15 de out de 2018 às 14:34, Ailton Jose Rodrigues <[hidden email]> escreveu:
Pessoal, estou com uma dúvida

Tenho duas tabelas a seguir representando dois vetores


v1 =  { [1]=4, [5]=7 }
v2=  { [3]=2 ,[5]=-3}


Quero obter a soma de v1+ v2 obtendo a tabela  { [1]=4, [3]=2, [5]=4} ou seja, somar somente os valores das chaves iguais.



Alguém pode ajudar ?


Abraços


--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em https://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em https://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: vetor esparso

Roberto Ierusalimschy
In reply to this post by Ailton Jose Rodrigues
> Tenho duas tabelas a seguir representando dois vetores
>
>
> v1 =  { [1]=4, [5]=7 }
> v2=  { [3]=2 ,[5]=-3}
>
>
> Quero obter a soma de v1+ v2 obtendo a tabela  { [1]=4, [3]=2, [5]=4} ou
> seja, somar somente os valores das chaves iguais.

v3 = {}
for k,v in pairs(v1) do v3[k] = v end
for k,v in pairs(v2) do v3[k] = v + (v3[k] or 0) end

-- Roberto

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Visite este grupo em https://groups.google.com/group/lua-br.
Para obter mais opções, acesse https://groups.google.com/d/optout.