APL - 去除嵌套并保持基质的形状

时间:2017-11-04 12:50:23

标签: nested apl

我有一个3x3矩阵的嵌套3x3矩阵(都包含数字)。如何“嵌套”所有这些矩阵,以便最终得到9x9矩阵。

1 个答案:

答案 0 :(得分:3)

假设这是我们的矩阵m:

  ⎕←m←(3 3⍴⊂3 3⍴⍳9)ר(1 10 100)∘.×1 10 100
┌───────────┬──────────────┬─────────────────┐
│1 2 3      │10 20 30      │100 200 300      │
│4 5 6      │40 50 60      │400 500 600      │
│7 8 9      │70 80 90      │700 800 900      │
├───────────┼──────────────┼─────────────────┤
│10 20 30   │100 200 300   │1000 2000 3000   │
│40 50 60   │400 500 600   │4000 5000 6000   │
│70 80 90   │700 800 900   │7000 8000 9000   │
├───────────┼──────────────┼─────────────────┤
│100 200 300│1000 2000 3000│10000 20000 30000│
│400 500 600│4000 5000 6000│40000 50000 60000│
│700 800 900│7000 8000 9000│70000 80000 90000│
└───────────┴──────────────┴─────────────────┘

然后你可以改变如下:

   ⊃⍪/,/m 
  1   2   3   10   20   30   100   200   300
  4   5   6   40   50   60   400   500   600
  7   8   9   70   80   90   700   800   900
 10  20  30  100  200  300  1000  2000  3000
 40  50  60  400  500  600  4000  5000  6000
 70  80  90  700  800  900  7000  8000  9000
100 200 300 1000 2000 3000 10000 20000 30000
400 500 600 4000 5000 6000 40000 50000 60000
700 800 900 7000 8000 9000 70000 80000 90000

基本上,这会将列逐行粘合在一起,然后在行上粘合 - 最后会显示生成的垫子。