【发布时间】:2021-10-22 06:52:59
【问题描述】:
假设我们有一个向量和矩阵,如下所示:
r =: 100 + 5 5 $ i.25
r
100 101 102 103 104
105 106 107 108 109
110 111 112 113 114
115 116 117 118 119
120 121 122 123 124
v =: 100 + 5 $ i.5
v
100 101 102 103 104
现在我想要一种方法来交换选择器指定的片段。 我知道如何交换物品:
(<0 _1) &C. v
104 101 102 103 100
在这里,我在 index=0 和 index=-1 处交换了元素。 在矩阵的情况下,行(项目)被改变:
(<0 _1) &C. r
120 121 122 123 124
105 106 107 108 109
110 111 112 113 114
115 116 117 118 119
100 101 102 103 104
但是如果我想指定两个任意选择呢?我所追求的示例:
sel1 =: (< (<0 1))
sel1 { v
100 101
sel2 =: (< (<2 3))
sel2 { v
102 103
sel1 sel2 INTERCHANGE v
102 103 100 101 104
矩阵也是如此:
sel1 =: (< (<0 1),(<0 1))
sel1 { r
100 101
105 106
sel2 =: (< (<3 4),(<1 2))
sel2 { r
116 117
121 122
sel1 sel2 INTERCHANGE r
116 117 102 103 104
121 122 107 108 109
110 111 112 113 114
115 100 101 118 119
120 105 106 123 124
所以我的问题是如何优雅地定义使用两个选择的交换?
【问题讨论】:
标签: j