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 unsOperações
local soma = A + B
local produto = A * BInformaçõ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.
