Criação de vetores multidimensionais e matrizes em lua

1,393 views
Skip to first unread message

Leonardo Ivo Neves da Silva

unread,
Aug 24, 2012, 4:33:51 PM8/24/12
to lua...@googlegroups.com
Gente,
   Aproveitando o gancho, eu gostaria que vocÊs me dessem o seguinte auxilio. Eu gostaria de fazer um vetor de duas ou mais posições em lua. No Java e no C é só fazer isso dado [] [], mas no Lua não é assim. Por isso eu peço o auxilo de vocês

Atenciosamente.
Leonardo Ivo

Elias Barrionovo

unread,
Aug 24, 2012, 7:01:01 PM8/24/12
to lua...@googlegroups.com

On Aug 24, 2012 5:33 PM, "Leonardo Ivo Neves da Silva" <leonard...@gmail.com> wrote:
>Eu gostaria de fazer um vetor de duas ou mais posições em lua.

Não sei se eu entendi sua dúvida, mas em Lua tabelas também podem se comportar como vetores:

vec = {2, 4, 6, 8}
vec2, vec 3 = {}, {}
for i = 1, 5 do
  vec2[i] = i*2
  vec3[#vec3+1] = i*2
end

for i, v in ipairs(vec2) do
  print(i, vec[i], v, vec3[i])
end

Andrws Vieira

unread,
Aug 24, 2012, 7:52:24 PM8/24/12
to lua...@googlegroups.com
Leonardo, podes fazer uma matriz igual a de C e JAVA asim ...

mt = {}          -- Cria Matrix
    for i=1,5 do
      mt[i] = {}     -- Cria nova linha
      for j=1,5 do
        mt[i][j] = i*j 
      end
    end


for i=1,5 do
for j=1,5 do
io.write (mt[i][j] .. " ")
end
io.write ("\n")
end





--
Andrws Aires Vieira         
Ciência da Computação 8° Semestre
Grupo PET Computação
Grupo de Arquitetura e Circuitos Integrados - GACI
Universidade Federal de Pelotas - UFPel

Leonardo Ivo Neves da Silva

unread,
Aug 24, 2012, 9:42:52 PM8/24/12
to lua...@googlegroups.com
Gente,
  Muito obrigado pela dica!
Um abraço a todo!
Leonardo IVo

sw...@zipmail.com.br

unread,
Sep 16, 2012, 4:42:30 PM9/16/12
to lua...@googlegroups.com
Olá,
 
Véio, dá uma olhada no livro de Lua do Augusto Manzano

A*e

SW-Fly




--

Leonardo Ivo Neves da Silva

unread,
Jan 25, 2013, 1:18:01 PM1/25/13
to lua...@googlegroups.com

Gente,
  Estou com uma dúvida que no www.lua.org não encontrei explicação. E sobre a criação de matrizes. Embora vocês tenham me passado sugestões de formas de criação de matrizes, estas de fato funcionam, embora o exemplo dado pelo site do lua não gere uma matriz, mas sim uma fila dupla .http://www.lua.org/pil/11.2.html  Vejam:


    mt = {}          -- create the matrix
    for i=1,N do
      mt[i] = {}     -- create a new row
      for j=1,M do
        mt[i][j] = 0
      end
    end



.  Mais eu descobri uma forma de criação de matrizes e mesmo tabelas que tem me encucado, mas que não encontro explicação na documentação do Lua. Eu ha uns meses atras peguei uma matriz em python e coloquei num fonte em Lua. Vejam:
self.squares = [['e','e','e','e','e','e','e','e'],\
['e','e','e','e','e','e','e','e'],\
['e','e','e','e','e','e','e','e'],\
['e','e','e','e','e','e','e','e'],\
['e','e','e','e','e','e','e','e'],\
['e','e','e','e','e','e','e','e'],\
['e','e','e','e','e','e','e','e'],\
['e','e','e','e','e','e','e','e']]
Teoricamente o interpretador deveria acusar esso, mas isso não aconteceu. Ele interpretou como tabela ou cadeia de caracteres. Sempre soube que para criação de tabela se usa {} e para dar nome os indices [""]. E nesse caso, a cadeia de caracteres ou tabela está sendo aberta e fechada com []. A propósito, eu também percebi que determinados comandos, como estes que descrevi,acima funcionam em ambas as linguagens, algo que não acontece em outras linguagens de programação.  O que vocês tem a dizer sobre isso? Tem alguma explicação?

Att,

Leonardo Ivo
Rio de Janeiro-RJ

Vagner nascimento

unread,
Jan 25, 2013, 1:24:36 PM1/25/13
to lua...@googlegroups.com
Leonardo, o que você fez foi declarar uma string usando [[ string longa ]] .
Para fazer com a tabela com uma matriz você pode declarar de diversas maneiras:
m = {}
m[1] = { 1, 2, 3 }
m[2] = { 1, 2, 3 }
m[3] = { 1, 2, 3 }

ou
m = {
 { 1 , 2 , 3 },
 { 1 , 2 , 3 },
 { 1 , 2 , 3 }
}

Com isso você consegue percorrer como linha e coluna.
Abs

Vagner


2013/1/25 Leonardo Ivo Neves da Silva <leonard...@gmail.com>

--

Leonardo Ivo Neves da Silva

unread,
Jan 31, 2013, 1:38:51 PM1/31/13
to lua...@googlegroups.com
Gente,
  Obrigado pelas informações. ME ajudou bastante.

Leonardo Ivo
Rio de JAneiro-RJ

Reply all
Reply to author
Forward
0 new messages