voltar

matrizLuna

uma biblioteca de matriz matematicas para lua

ver repo Luau★ 1
MatrizLuna Logo

MatrizLuna 🌙

Uma biblioteca de operações matriciais para Luau.

Funcionalidades

  • Criação de matrizes com dimensões e valores personalizados
  • Operações matemáticas básicas: soma, subtração, multiplicação escalar e matricial
  • Matrizes especiais: identidade, zeros, ones
  • Transposição, modificação e acesso de elementos
  • Impressão formatada
  • Validação de parâmetros

Instalação

Basta copiar os arquivos matriz.luau e matriz.d.luau para seu projeto.

Como usar

Importação

Importante: O Luau CLI exige caminho relativo no require!

local matriz = require('./matriz.luau')

Criação de matrizes

local A = matriz.new(2, 2, 5) -- Matriz 2x2 preenchida com 5
local B = matriz.identity(2)  -- Matriz identidade 2x2
local Z = matriz.zeros(2, 3)  -- Matriz 2x3 de zeros
local O = matriz.ones(3, 2)   -- Matriz 3x2 de uns

Operações

local soma = A + B
local produto = A * B

Informações

local rows, cols = A:size()
print("Dimensões de A:", rows .. "x" .. cols)
print("A é quadrada?", A:isSquare() and "Sim" or "Não")

Impressão

print(A)

Exemplo completo

local matriz = require('./matriz.luau')

local A = matriz.new(2, 2, 5)
local B = matriz.identity(2)
print("A + B:") print(A + B)
print("A * B:") print(A * B)
print("Matriz de zeros 2x3:") print(matriz.zeros(2, 3))
print("Matriz de ones 3x2:") print(matriz.ones(3, 2))

Observações

  • Sempre use require com caminho relativo: require('./matriz.luau')
  • Para usar em Roblox, adapte o require conforme o sistema de módulos da plataforma.

Licença

Veja o arquivo LICENSE para detalhes.
local A = matriz.new(2, 2, 1)
local B = matriz.new(2, 2, 2)

local sum = A + B
local diff = A - B
local scaled = 3 * A
local product = A * B
local neg = -A


### Acesso e modificação

```lua
local M = matriz.new(3, 3, 0)
M:set(1, 1, 10)
local val = M:get(1, 1)
M:modify(function(i, j, v) return v * 2 end)
M:modify(5)

Informações da matriz

local M = matriz.new(3, 4, 1)
local rows, cols = M:size()
local isSquare = M:isSquare()
local T = M:transpose()

Impressão

local M = matriz.new(2, 3, function(i, j) return i * j end)
print(M)
-- Saída:
-- | 0.00  0.00  0.00 |
-- | 0.00  1.00  2.00 |

Exemplos

Exemplo básico

local matriz = require("matriz")
local A = matriz.new(2, 2, 1)
local B = matriz.new(2, 2, 2)
local sum = A + B
local product = A * B
print("A + B:") print(sum)
print("A * B:") print(product)

Exemplo avançado

local matriz = require("matriz")
local M = matriz.new(3, 3, function(i, j)
    if i == j then return 1 else return 0 end
end)
M:set(1, 2, 5)
M:set(2, 3, -2)
local T = M:transpose()
print("Matriz original:") print(M)
print("Transposta:") print(T)

Tratamento de erros

A biblioteca valida:

  • Dimensões compatíveis para operações
  • Índices de acesso à matriz
  • Multiplicação de inversos por zero
  • Parâmetros de entrada
local A = matriz.new(2, 3, 1)
local B = matriz.new(3, 2, 1)
-- local sum = A + B  -- Erro!
local product = A * B  -- OK!

Licença

Veja o arquivo LICENSE para detalhes.