0
我有一个元素列表,我使用Enum.chunk_every
方法将它转换为列表列表。Elixir循环遍历矩阵
的代码是这样的:
matrix = Enum.chunk_every(list_1d, num_cols)
Now I want to loop over the matrix and access the neighbors
只需如果我有列表[1,2,3,4,5,6,1,2,3]它被转换成一个3×3矩阵像:
[1,2,3],[4,5,6],[1,2,3]]
现在我怎么遍历这个矩阵?如果我想访问元素的邻居呢?例如,5的邻居是2,4,6和2.
我可以看到递归是一种方式,但这将如何工作?
您是否有多个两级深度列表?递归适用于任意深度的列表。另外,请说明5为什么邻居是2,4,5和2的原因? –
如果要高效地在二维矩阵中随机访问,您需要(a)使其不变(使用元组),否则(b)使用每个矩阵元素的进程说明来构建相邻结构 - 这对于稀疏值是值得的矩阵。 – GavinBrelstaff
@ denis.peplin我可以有一个100x100矩阵。我的意思是,如果元素是“(i,j)”,那么它的邻居就是(i + 1,j),(i-1,j)','(i,j-1)'和' (i,j + 1)' 我给出的例子有点不对。我的意思是5的邻居是2(i-1,j),4(i,j-1),6(i,j + 1)和2(i + 1,j)。 这对你有帮助吗? –