Combinazione di vettori in APL (creando tuple con elementi da ciascun vettore)
Domanda
Ho 2 vettoriali:
a ← 1 2 3
b ← 5 6 7
.
Vorrei creare un array nidificato con elementi di vettore di 2 elementi, avendo un elemento da un B (Tuples), I.e.:
┌───┬───┬───┐
│1 5│2 6│3 7│
└───┴───┴───┘
.
Come lo farei in APL?Non riesco a trovare alcuna soluzione elastica, solo (a[1],b[1]) (a[2],b[2])
(ho anche provato il prodotto esterno con la funzione ⊃
ma senza successo).
Soluzione
Prova questo:
⊂[2] a,[1.5]b
.
La prima parte: a,[1.5]b
unisce i due array e crea un array bidimensionale con ciascuna colonna è il contenuto delle variabili A e B.
Quindi, ⊂[2]
incapsula ogni riga in coppie, con conseguente uscita desiderata.
Nota che se si utilizza Dyalog, potrebbe essere necessario utilizzare ↑ anziché ⊂.Penso che questo dipenda dal valore della variabile ⎕ML, ma non uso Dyalog quindi non posso testare questo.