【问题标题】:How to iterate through an n-dimensional array, but only via adjacent elements?如何遍历n维数组,但只能通过相邻元素?
【发布时间】:2021-02-21 19:27:40
【问题描述】:

基本上,我有一个 n 维数组,我想遍历它的元素,但迭代器只能到相邻的元素。例如像这样(使用二维数组)—

现在我可以想到一种方法来使用二维数组(例如通过编辑数组本身)来做到这一点,但我想不出一种方法可以以这种方式循环任何 n 维数组。如果您对此有任何想法,那将有很大帮助。它不需要以特定的模式移动,唯一需要的是迭代器在每一步中只移动到相邻的矩阵元素。

注意:我需要这样做的原因是我正在编写一个python脚本来操作一个QM程序来运行一个“松弛扫描”。在这种情况下,必须将一个或多个键长限制为特定值,并且允许分子的其余部分松弛。大多数程序通过采用第一个提供的几何图形并每次更改其中的键长值来做到这一点。但这会占用大量时间,因为随着扫描的进行,原始几何不再是一个好的猜测,后续步骤需要更多时间。这里的矩阵存储约束值。如果我能做到让迭代器只移动到相邻的矩阵元素,那么我可以保证坐标的变化很小,并且过程很快完成。

【问题讨论】:

    标签: python arrays python-3.x loops iterator


    【解决方案1】:

    对于每个维度,您必须定义它是升序还是降序,当它到达该维度的数组末尾时,它将从升序变为降序,当它进入第一个位置时,它将从降序变为升序。想法是,将第一个维度升序变化,在下一个维度增长 1,将第一个维度降序变化,在第二个维度再次增长 1。一直做到第二维结束,第三维加 1,然后开始在第二维上递减……按照这个直到你走完所有的维度

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      相关资源
      最近更新 更多