APL中嵌套数组的操作

时间:2013-05-05 18:44:15

标签: apl dyalog

我有以下结构中的数据:

Nums←56 66 19 37 44 20 18 23 68 70 82

A←(⍳¨(3≤⍳4)/⍳4)
┌→────┬───────┐
│1 2 3│1 2 3 4│
└~───→┴~─────→┘

我想要做的是创建另一个嵌套数组,其中包含Nums值的元素,使用A中的索引选择,看起来像这样:

┌→───────┬───────────┐
│56 66 19│56 66 19 37│
└~──────→┴~─────────→┘

然后我想对我的阵列的每个元素执行操作,但我想我知道如何从那里开始。 如何在APL中创建这样的数组?

3 个答案:

答案 0 :(得分:1)

怎么样

(⊂Nums){⍺[⍵]}¨A

然后你可以继续申请你的fnp>

(⊂Nums){fn ⍺[⍵]}¨A

答案 1 :(得分:0)

这是结构化结果的另一种方式

      A⌷¨¨⊂⊂Nums
56 66 19  56 66 19 37

答案 2 :(得分:0)

在NARS2000中,简单:

  Nums←56 66 19 37 44 20 18 23 68 70 82
  A←(⍳3)(⍳4)     
  ⎕fmt A
┌2──────────────────┐
│┌3─────┐ ┌4───────┐│
││ 1 2 3│ │ 1 2 3 4││
│└~─────┘ └~───────┘2
└∊──────────────────┘
  ⎕fmt {Nums[⍵]}¨¨A
┌2─────────────────────────┐
│┌3────────┐ ┌4───────────┐│
││ 56 66 19│ │ 56 66 19 37││
│└~────────┘ └~───────────┘2
└∊─────────────────────────┘