用于矩阵模式搜索的类似regexp的库

cly*_*yfe 8 regex algorithm language-theory matrix

是否有一个库(在任何语言中)可以搜索矩阵中的模式,如正则表达式适用于字符串?像矩阵的常规表达式,或任何矩阵模式搜索方法?

est*_*ord 1

如果您不反对使用 J,您可以使用 (match) 运算符来确定两个矩阵是否相等-:。例如:

   X =: 4 3 $ i.12
   X
0  1  2
3  4  5
6  7  8
9 10 11
   Y =: 4 3 $ (1+i.12)
   Y
 1  2  3
 4  5  6
 7  8  9
10 11 12
   X -: X
1
   X -: Y
0
Run Code Online (Sandbox Code Playgroud)

匹配运算符的一个很好的功能是您可以使用它来比较任意维度的数组;如果A是 3x3x4 数组且B是 2x1 数组,则A-:B返回0

要确定一个矩阵是否是另一个矩阵的子矩阵,可以使用E:(interval) 运算符,如下所示:

 X =: 2 2 $ 1 2 4 5  
   X
1 2
4 5
   Y =: 4 3 $ (1+i.12)
   Y
 1  2  3
 4  5  6
 7  8  9
10 11 12
   X E. Y
1 0 0
0 0 0
0 0 0
0 0 0
Run Code Online (Sandbox Code Playgroud)

结果左上角的 1 表示 Y 等于 X 的部分将给定像素作为其左上角。原因是 Y 中可能嵌入了多个 X 的重叠副本,并且仅标记一个像素即可让您看到每个匹配图块的位置。