Vectores y Matrices
Los vectores y las matrices son estructuras fundamentales en BLOX para trabajar con colecciones numéricas y datos organizados por posición.
Se usan para:
- almacenar series de valores
- representar listas ordenadas
- modelar tablas numéricas
- trabajar con álgebra lineal
- resolver problemas de estadística, gráficos, física e ingeniería
Vectores
Un vector es una colección unidimensional de elementos del mismo tipo, accesibles por índice.
En BLOX, los vectores se usan principalmente para:
- listas de números
- listas de cadenas
- coordenadas
- series temporales
- resultados intermedios de cálculo
Declarar vectores
En este documento nos centraremos en vectores numéricos.
Vector numérico
VECTOR xs[5]
Esto crea un vector numérico de dimensión 5.
Asignar valores a un vector
Forma elemento a elemento
VECTOR xs[5]
xs[0] = 10
xs[1] = 20
xs[2] = 30
xs[3] = 40
xs[4] = 50
Forma literal
VECTOR xs[5]
xs = [10, 20, 30, 40, 50]
En BLOX, los vectores usan índices base 0.
Tip: Si un vector fue declarado con dimensión
n, sus índices válidos van desde0hastan - 1.
Leer valores de un vector
VECTOR xs[5]
NUMERICO a
a = xs[2]
Recorrer un vector
VECTOR xs[5]
NUMERICO i
PARA i = 0 HASTA xs.dim - 1 HACER
IMPRIMIR(xs[i])
FIN_PARA
Propiedad .dim
La propiedad .dim indica la cantidad de elementos del vector.
VECTOR xs[10]
NUMERICO n
n = xs.dim
Acceso dinámico y uso típico
Los vectores son especialmente útiles cuando necesitas generar datos punto a punto.
VECTOR xs[5], ys[5]
NUMERICO i
PARA i = 0 HASTA 4 HACER
xs[i] = i
ys[i] = xs[i]^2
FIN_PARA
Esto produce una pequeña serie de pares:
x = 0, y = 0x = 1, y = 1x = 2, y = 4x = 3, y = 9x = 4, y = 16
Funciones frecuentes con vectores
Dependiendo de las APIs incluidas, BLOX puede trabajar con funciones como:
- búsqueda
- ordenamiento
- reversa
- inserción
- eliminación
- concatenación
- impresión
Un patrón muy común es:
INCLUIR "vectores.api"
y luego usar funciones auxiliares sobre VECTOR.
Buenas prácticas con vectores
- Recorre vectores numéricos desde
0hastadim - 1. - Asegúrate de no acceder a posiciones fuera de rango.
- Usa nombres claros como
xs,ys,datos,valores,indices. - Si dos vectores representan pares ordenados, mantén siempre la misma dimensión.
Errores frecuentes con vectores
1. Confundir índices base 0 con base 1
Esto es incorrecto para vectores:
PARA i = 1 HASTA xs.dim HACER
IMPRIMIR(xs[i])
FIN_PARA
La forma correcta suele ser:
PARA i = 0 HASTA xs.dim - 1 HACER
IMPRIMIR(xs[i])
FIN_PARA
2. Usar índices fuera de rango
VECTOR xs[5]
xs[5] = 100
Eso intenta escribir fuera del vector, porque el último índice válido es 4.
3. Asumir que todos los contenedores usan la misma base
En BLOX:
- los vectores suelen indexarse desde
0 - las tablas usan registros desde
1
Conviene no mezclar ambas convenciones.
Matrices
Una matriz es una estructura bidimensional de valores numéricos organizada en filas y columnas.
Se usa para:
- álgebra lineal
- sistemas de ecuaciones
- transformaciones geométricas
- procesamiento numérico
- imágenes y convoluciones
- aprendizaje automático
Declarar matrices
MATRIZ A[3, 4]
Esto crea una matriz de:
- 3 filas
- 4 columnas
Acceder a elementos de una matriz
Sintaxis con coma
MATRIZ A[3, 3]
A[0,0] = 10
A[0,1] = 20
A[1,2] = 50
Sintaxis encadenada
MATRIZ A[3, 3]
A[0][0] = 10
A[0][1] = 20
A[1][2] = 50
En BLOX, las matrices usan índices base 0.
Tip: Si una matriz tiene dimensión
m x n, sus índices válidos van desde0hastam - 1en filas, y desde0hastan - 1en columnas.
Leer valores de una matriz
Sintaxis con coma
MATRIZ A[3, 3]
NUMERICO x
x = A[1,2]
Sintaxis encadenada
MATRIZ A[3, 3]
NUMERICO x
x = A[1][2]
Recorrer una matriz
MATRIZ A[3, 3]
NUMERICO i, j
PARA i = 0 HASTA A.filas - 1 HACER
PARA j = 0 HASTA A.columnas - 1 HACER
IMPRIMIR(A[i,j])
FIN_PARA
FIN_PARA
Propiedades frecuentes
Según el contexto y las APIs disponibles, una matriz suele trabajarse con:
- cantidad de filas
- cantidad de columnas
- dimensión
Un patrón típico es:
NUMERICO m, n
m = A.filas
n = A.columnas
Asignar valores a una matriz
Forma elemento a elemento
MATRIZ A[2,2]
A[0,0] = 1
A[0,1] = 2
A[1,0] = 3
A[1,1] = 4
Forma literal
MATRIZ A[2,2]
A = [[1, 2], [3, 4]]
Crear una matriz identidad
MATRIZ I[3,3]
NUMERICO i, j
PARA i = 0 HASTA 2 HACER
PARA j = 0 HASTA 2 HACER
SI (i == j) ENTONCES
I[i,j] = 1
SINO
I[i,j] = 0
FIN_SI
FIN_PARA
FIN_PARA
Operaciones frecuentes con matrices
En BLOX es común trabajar con funciones como:
- suma
- resta
- multiplicación
- transpuesta
- determinante
- inversa
- diagonales
- rotaciones
- convolución
Muchas de estas operaciones viven en:
INCLUIR "matrices.api"
Ejemplo simple de carga manual
MATRIZ A[2,2]
A[0,0] = 1
A[0,1] = 2
A[1,0] = 3
A[1,1] = 4
Ejemplo conceptual de transpuesta
Si:
entonces su transpuesta es:
En una transpuesta, filas y columnas se intercambian.
Ejemplo conceptual de rotación 180°
Rotar una matriz 180° equivale a invertir el orden de sus filas y columnas.
Si:
entonces:
Filas y columnas
Muchas funciones de matrices trabajan específicamente sobre:
- una fila
- una columna
- la diagonal principal
- la diagonal secundaria
Por ejemplo:
- mínimo en una columna
- máximo en una fila
- suma de una diagonal
- extracción de submatrices
Matrices y gráficos
Las matrices también pueden servir para:
- representar imágenes en escala de grises
- aplicar filtros
- almacenar kernels de convolución
- describir transformaciones geométricas
Matrices y redes neuronales
En BLOX, las matrices aparecen con frecuencia en:
- multiplicación entre capas
- suma de bias
- funciones de activación aplicadas elemento a elemento
- propagación hacia adelante
Buenas prácticas con matrices
- Recorre matrices usando dos índices: fila y columna.
- Recuerda que las matrices en BLOX usan base 0.
- Verifica compatibilidad de dimensiones antes de sumar o multiplicar.
- Usa nombres expresivos como
A,B,W,X,Y,kernel.
Errores frecuentes con matrices
1. Confundir los límites válidos
Si una matriz es A[3,3], sus índices válidos van de 0 a 2.
Esto es incorrecto:
A[3,3] = 1
Una forma válida sería:
A[2,2] = 1
2. Confundir filas con columnas
En:
A[i,j]
irepresenta la filajrepresenta la columna
3. Multiplicar matrices incompatibles
Si A es de dimensión m x n y B es de dimensión p x q, solo puedes calcular A * B cuando:
4. Mezclar las convenciones de índices
En BLOX conviven varias estructuras:
VECTORsuele usar base 0MATRIZusa base 0TABLAusa registros desde 1
Conviene tener esto muy presente cuando conviertes datos entre unas y otras.
Ejemplo completo
VECTOR xs[5]
MATRIZ A[2,2]
NUMERICO i
PARA i = 0 HASTA xs.dim - 1 HACER
xs[i] = i^2
FIN_PARA
// También podría escribirse:
// xs = [0, 1, 4, 9, 16]
A = [[1, 2], [3, 4]]
IMPRIMIR(xs[3])
IMPRIMIR(A[1,0])
IMPRIMIR(A[1][0])
Resumen
En BLOX:
- un vector es una estructura unidimensional
- una matriz es una estructura bidimensional
- los vectores se recorren con índices base 0
- las matrices se recorren con índices base 0
Ambas estructuras son esenciales para:
- cálculo numérico
- estadística
- gráficos
- física
- procesamiento de datos
- inteligencia artificial