理解J数组

时间:2013-04-19 16:06:14

标签: arrays j

从简单的事情开始:

a =: 3 4 $ i.12

这会创建一个漂亮的3 x 4矩阵。

所以当我尝试

b=: a $ i.5

我得到了很长的b输出。我不明白输出是什么(顺便说一句,i.5是任意的)。我的意思是,当没有2维数组作为左手参数时,我不明白$的意思。 有人可以解释一下b在描述什么吗?

1 个答案:

答案 0 :(得分:4)

以下是发生的事情: a成为矩阵

0 1  2  3
4 5  6  7
8 9 10 11
正如你刚才所描述的那样。 $的二元等级为1 _,这意味着它将左参数行应用于整个右参数并将结果粘贴在一起。 a $ i.5(0 1 2 3 $ i.5),(4 5 6 7 $ i.5),:(8 9 10 11 $ i.5)

所有子阵列都有不同的形状,所以它们被强制成最适合它们的最不常见的形状,在这种情况下是8 9 10 11。因此,结果具有形状3 8 9 10 11