【发布时间】:2015-01-22 21:59:18
【问题描述】:
我在使用 scipy.spatial.Delaunay 函数时遇到了一个大问题。
我初始化了一个名为 tri 的变量,如下所示:
tri = Delaunay(ApsArray, incremental=True)
这段代码完美运行,但由于我必须在 for 循环中使用此三角剖分,我想将 tri 复制到另一个名为 triTemp 的变量中(作为时间变量)。
我在 python 文档中搜索,我在 copy 模块中找到了 deepcopy,它允许我将 tri 复制到内存中的另一个站点由 triTemp 指出:
triTemp = deepcopy(tri)
有效!但是当我尝试向 triTemp 添加新点时,出现此错误:
Traceback (most recent call last):
File "C:\Users\user\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2883, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-77-2f5ca634bc26>", line 1, in <module>
tri.add_points([[0.2,0.3]])
File "qhull.pyx", line 1544, in scipy.spatial.qhull._QhullUser.add_points (scipy\spatial\qhull.c:13938)
File "qhull.pyx", line 446, in scipy.spatial.qhull._Qhull.add_points (scipy\spatial\qhull.c:4954)
TypeError: 'NoneType' object is not subscriptable
我认为问题出在参数incremental上,因为triTemp只是tri内存中的一个副本,但我的问题就是不重新初始化triTemp不知道怎么改这个参数。
我想使用一个副本,而不是再次计算三角剖分,因为我认为它更有效,所以如果有人知道达到这个目标的方法,请告诉我。
谢谢大家,英语不好也很抱歉!
【问题讨论】: