MATLAB中的自避免随机游动和无折返

MATLAB中的自避免随机游动和无折返,matlab,random,Matlab,Random,有一个二维阵列,8X8 立方体= -1 -1 -1 -1 -1 -1 -1 -1 -1 **2** **2** **2** **2** **2** **2** -1 -1 **2** 2 2 2 2 **2** -1 -1 **2** 2 2 2 2 **2** -1 -1 **2** 2 2 2 2 **2** -1 -1 **2

有一个二维阵列,8X8 立方体=

-1    -1    -1    -1    -1    -1    -1    -1
-1   **2** **2** **2** **2** **2** **2**  -1
-1   **2**   2     2     2     2   **2**  -1
-1   **2**   2     2     2     2   **2**  -1
-1   **2**   2     2     2     2   **2**  -1
-1   **2**   2     2     2     2   **2**  -1
-1   **2** **2** **2** **2** **2** **2**  -1
-1    -1    -1    -1    -1    -1    -1    -1
对于这个阵列,粒子可以在晶格中移动,它从一个开始 从一边到另一边。从值为2的最外层随机选择一个场地,作为粒子移动的起点。然后粒子向前移动,它可以向左、向右或向前移动,但不向后移动,我们可以通过一个随机数确定移动方向。当下一个位置为-1时,粒子停止移动。当第一条移动路线完成时,从值为2的最外层随机选择另一个站点,执行相同的操作

如何在MATLAB中实现上述算法。编程的困难在于粒子无法返回,这对于编码是困难的

One possible result, start direction B and C


您的问题可以从一些代码开始。只需在移动到每个节点时使其不可访问即可。您的问题肯定需要一些澄清,比如
-1
2
值代表什么,以及它们与示例图像中4个不同颜色的正方形的关系。还有足够的代码向我们展示了您当前如何选择路径。感谢您的回复,-1代表外部环境,2代表多孔介质。气体分子可以从一边扩散到另一边。@Kongling,不幸的是,从图表的角度看,这并不能告诉我任何事情。我在哪里可以走,哪里不能走?所需路径是什么?对不起,图表与我的问题不一致,图表更复杂。从值为2的最外层随机选择一个场地,作为粒子移动的起点,然后粒子向前移动,当下一个场地为-1时,行走停止。
self-avoiding random walk, and I need no turning back