الجمع بين المتجهات في APL (إنشاء صفوف بعناصر من كل متجه)

StackOverflow https://stackoverflow.com//questions/25012889

  •  21-12-2019
  •  | 
  •  

سؤال

لدي ناقلان:

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 لذا لا يمكنني اختبار ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top