Combinando vectores en APL (creando tuplas con elementos de cada vector)
Pregunta
Tengo 2 vectores:
a ← 1 2 3
b ← 5 6 7
Me gustaría crear una matriz anidada con elementos vectoriales de 2 elementos, teniendo un elemento de un B (tuplas), es decir,.:
┌───┬───┬───┐
│1 5│2 6│3 7│
└───┴───┴───┘
¿Cómo haría eso en APL?No puedo encontrar ninguna solución elástica, solo (a[1],b[1]) (a[2],b[2])
(también he intentado el producto externo con la función ⊃
, pero sin éxito).
Solución
Intenta esto:
⊂[2] a,[1.5]b
La primera parte: a,[1.5]b
fusiona las dos matrices y crea una matriz bidimensional con cada columna el contenido de las variables A y B.
Luego, ⊂[2]
encapsula cada fila en pares, lo que resulta en la salida deseada.
Tenga en cuenta que si está utilizando Dyalog, es posible que tenga que usar ↑ en lugar de ⊂.Creo que esto depende del valor de la variable ⎕ML, pero no uso Dyalog, así que no puedo probar esto.