【发布时间】:2021-10-18 19:39:31
【问题描述】:
我在玩选择。让我们看一下最初的例子:
rarg=. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
_1 (<(<0 1),(<0 1)) } ( 4 4 $ rarg)
_1 _1 2 3
_1 _1 6 7
8 9 10 11
12 13 14 15
这里我想覆盖块 {rows=0,1;列=0,1}。我可以使用块代替 -1 :
(2 2 $ _1 _2 _3 _4) (<(<0 1),(<0 1)) } ( 4 4 $ rarg)
_1 _2 2 3
_3 _4 6 7
8 9 10 11
12 13 14 15
如果我否定选择器中的行和列选择,我最终会得到预期的结果:
_1 (<(<<0 1),(<<0 1)) } ( 4 4 $ rarg)
0 1 2 3
4 5 6 7
8 9 _1 _1
12 13 _1 _1
到目前为止一切顺利。但是让我们假设我想“否定”选择器 ( 并有这样的事情:
_1 NEGATED_SEL } ( 4 4 $ rarg)
0 1 _1 _1
4 5 _1 _1
_1 _1 _1 _1
_1 _1 _1 _1
- 有没有办法使用上述选择器来实现?
- 如果是,如果我想指定的不是-1,而是任意值怎么办? 非常感谢!
【问题讨论】:
-
我相信几年前,
}被调整为拒绝(信号错误)任何非矩形选择。所以我认为这是不可能的;我将不得不仔细检查。同时,您可以使用从}派生的monad 来合并 两个数组,即:(1 (< (<0 1),(<0 1) )} 4 4 $ 0) } _1 ,: i. 4 4。显然_1 ,: …可以是你喜欢的任何东西,所以你可以在标量级别指定任意替换。 -
好的,确认:
}started signaling error on non-rectangular selections in J6.01 (2006)。我很难找到在此更改之前并证明此更改的 JForum 线程,但网络是您将无法通过使用 dyadn}的巧妙索引以您想要的方式反转选择(除非您这样做索引集自己演算)。
标签: j