0

我有一张桌子,想对其进行过滤。示例用例包括:

4 6 8 6 5
8 6 6 6 9
3 2 3 1 9
2 7 0 9 5
7 7 9 7 4
8 7 4 2 1
1 0 4 3 9
3 2 7 4 4
0 3 7 5 9
6 3 2 8 2
  • 只保留第二个元素等于 2 的行,即应该返回
3 2 3 1 9
3 2 7 4 4
  • 只保留第二个元素等于 6 的列,即应该返回
6 8 6
6 6 6
2 3 1
7 0 9
7 9 7
7 4 2
0 4 3
2 7 4
3 7 5
3 2 8
  • 返回第一个和第二个元素之和等于 9 的行
2 7 0 9 5
6 3 2 8 2
  • 将表转换为新表,其中第一列是原表中第一列和第二列之和,第二列是第三列和第一列之差,即
   10    4
   14   _2
    5    0
    9   _2
   14    2
   15   _4
    1    3
    5    4
    3    7
    9   _4
  • 将表转换为新表,其中第一行是原表第一行和第二行之和,第二行是第三行和第一行之差,即

12 12 14 12 14
_1 _4 _5 _5 4

4

1 回答 1

1

选择:{

选择行:{"1

测试:=

选择:#


每行的第二个元素

1 {"1 in
6 6 2 7 7 7 0 2 3 3

测试第二个元素是否等于 2

2 = 1 {"1  in
0 0 1 0 0 0 0 1 0 0

当第二个元素等于 2 时选择行

( 2 = 1 {"1  in) # in   NB. or  in #~ (2=1{"1 in) or (]#~ 2 = 1 {"1 ]) in
3 2 3 1 9
3 2 7 4 4

等效于第二个元素等于 6 的行

( 6 = 1 { in) #"1 in
6 8 6
6 6 6
2 3 1
7 0 9
7 9 7
7 4 2
0 4 3
2 7 4
3 7 5
3 2 8

行的第一个和第二个元素的总和

(+/"1) 0 1 {"1 in
10 14 5 9 14 15 1 5 3 9

选择 sum eq 以上的行。9

in #~ (9 = (+/"1) 0 1 {"1 in)
2 7 0 9 5
6 3 2 8 2

添加等

附加以前的结果:

((+/"1) 0 1 {"1 in) ,. (-/"1) 0 2 {"1 in
10 _4
14  2
 5  0
 9  2
14 _2
15  4
 1 _3
 5 _4
 3 _7
 9  4
于 2013-07-21T01:52:12.240 回答