> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/spanish/function-blocks/blocks-reference/data-logic/logic/demux.md).

# Demux

Este bloque de función separa una única entrada agrupada en múltiples salidas independientes. Úsalo cuando tengas una lista o lote de elementos y quieras acceder a cada elemento individualmente como salidas separadas.

## 📥 Entradas <a href="#inputs" id="inputs"></a>

`In` Acepta una entrada agrupada (lista/lote) en un solo conector. El conector puede contener varios elementos.

## 📤 Salidas <a href="#outputs" id="outputs"></a>

`Out 1`, `Out 2` ... Cada conector de salida proporciona un elemento de la lista de entrada. El número de salidas se puede ajustar para que coincida con el tamaño de la lista que quieras dividir.

## 🕹️ Controles <a href="#controls" id="controls"></a>

`Output size` Elige cuántas salidas debe proporcionar el bloque. El desplegable ajusta dinámicamente los conectores de salida visibles.

## 🎨 Características <a href="#features" id="features"></a>

* Conteo de salidas dinámico: cambia cuántas salidas están disponibles sin reemplazar el bloque.
* Conserva el orden de entrada: los elementos se reenvían a las salidas en la misma secuencia en que llegan.
* Soporta datos genéricos: funciona con imágenes, números, shapes u otros valores genéricos producidos por bloques previos.

## 📝 Instrucciones de uso <a href="#usage" id="usage"></a>

1. Proporciona una lista agrupada o un lote al conector `In`.
2. Ajusta `Output size` al número de elementos que esperas dividir.
3. Usa las salidas separadas para alimentar bloques posteriores que necesiten elementos individuales.

## 📊 Evaluación <a href="#evaluation" id="evaluation"></a>

Al ejecutarse, el bloque lee la entrada agrupada y coloca cada elemento en el conector de salida correspondiente. Si la entrada es más corta o más larga que la cantidad de salidas configurada, maneja la discrepancia con lógica posterior o ajusta `Output size` según sea necesario.

## 💡 Consejos y trucos <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Para recombinar los elementos divididos en un solo flujo, empareja este bloque con el bloque `Mux`.
* Para acceder a un solo elemento de una lista antes o después de demultiplexar, usa el bloque `Get Element`.
* Usa `Batch Processing` antes de demultiplexar cuando proceses listas grandes para reducir el uso de memoria.
* Tras procesar elementos individuales, puedes unirlos de nuevo usando `Batch Concatenation`.
* Si necesitas iterar sobre cada elemento y sacarlos de un lote, considera combinar con `Debatch`.
* Almacena o congela resultados intermedios con `Data Memory` cuando requieras salidas estables para pasos posteriores.

(pista: elige solo bloques de la lista disponible al combinar — p. ej., `Mux`, `Get Element`, `Batch Processing`, `Debatch`, `Batch Concatenation`, `Data Memory`.)

## 🛠️ Solución de problemas <a href="#troubleshooting" id="troubleshooting"></a>

* No hay salidas pobladas: asegúrate de que una entrada agrupada válida está conectada a `In` y que `Output size` está ajustado al número esperado.
* Elementos faltantes o extra: confirma que la longitud de la entrada coincide con el `Output size` configurado o añade lógica posterior para manejar longitudes variables (por ejemplo con `Get Element` o `Replace None`).
* Tipos de datos inesperados: verifica que los bloques previos producen el tipo de dato esperado; usa bloques de conversión o validación de tipo si es necesario.
