الجمع بين المتجهات في APL (إنشاء صفوف بعناصر من كل متجه)
سؤال
لدي ناقلان:
a ← 1 2 3
b ← 5 6 7
أرغب في إنشاء مصفوفة متداخلة تحتوي على عناصر متجهة مكونة من عنصرين، تحتوي على عنصر واحد من a b (مجموعات)، على سبيل المثال:
┌───┬───┬───┐
│1 5│2 6│3 7│
└───┴───┴───┘
كيف أفعل ذلك في APL؟لا أستطيع العثور على أي حل مرن، فقط (a[1],b[1]) (a[2],b[2])
(لقد جربت أيضًا المنتج الخارجي مع ⊃
الوظيفة ولكن دون نجاح).
المحلول
جرب هذا:
⊂[2] a,[1.5]b
الجزء الاول: a,[1.5]b
يدمج المصفوفتين وينشئ مصفوفة ثنائية الأبعاد بحيث يكون كل عمود محتوى المتغيرين a وb.
ثم، ⊂[2]
بتغليف كل صف في أزواج، مما يؤدي إلى الإخراج المطلوب.
لاحظ أنه إذا كنت تستخدم Dyalog، فقد تضطر إلى استخدام ↑ بدلاً من ⊂.أعتقد أن هذا يعتمد على قيمة المتغير ⎕ML، لكنني لا أستخدم Dyalog لذا لا يمكنني اختبار ذلك.
لا تنتمي إلى StackOverflow