3

i.原语产生一个整数列表:

   i. 10
0 1 2 3 4 5 6 7 8 9

如果我想连续生成几个短列表,我这样做:

   ;i."0 each [ 2 3 4
0 1 0 1 2 0 1 2 3

(我想要的结果)

拳击(that each)在这里是一个拐杖,因为没有它,就会i."0产生一个矩阵。

   i."0 [ 2 3 4
0 1 0 0
0 1 2 0
0 1 2 3

(我不想要的结果)

有没有更好的方法可以不i."0将输出格式化为矩阵,而是数组?

4

1 回答 1

1

不,我相信您无法比当前的解决方案做得更好。没有办法i."0返回向量。

"0副词强制i.接受标量,并返回i.向量。 i.无法知道您的输入是向量而不是标量。根据The J Primer,结果形状是参数框架和结果的连接。

到目前为止我发现的最短的“无盒”解决方案是

(*@$"0~#&,i."0) 2 3 4

这仍然比仅仅使用更长;i. each 2 3 4

于 2011-05-17T22:44:09.683 回答