Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-11-28, 22:09   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 如何通过Python的scipy.spatial.Voronoi获得与MATLAB的voronoin相同的输出

我使用MATLAB的voronoin来判断单元之间的连接,并且我想将此函数转换为Python。

当我使用Python的scipy.spatial.Voronoi时,输出有所不同。例如,如下面的代码所示,我为MATLAB和Python使用了相同的输入。

MATLAB: seed = [ 17.746 -0.37283 -0.75523; 6.1704 1.3404 7.0341; -7.7211 5.4282 4.5016; 5.8014 2.1252 -6.2491; -16.047 -2.8472 -0.024795; -2.2967 -6.7334 0.60707] [vvern_mat, vceln_mat] = voronoin(seed); Python: import numpy as np from scipy.spatial import Voronoi seed = np.array([[ 17.746 , -0.37283 , -0.75523 ], [ 6.1704 , 1.3404 , 7.0341 ], [ -7.7211 , 5.4282 , 4.5016 ], [ 5.8014 , 2.1252 , -6.2491 ], [-16.047 , -2.8472 , -0.024795], [ -2.2967 , -6.7334 , 0.60707 ]]) vor = Voronoi(kariseed) vvern_py = vor.vertices vceln_py = vor.regions 输出如下。

vvern_mat = Inf Inf Inf -6.9386 1.7980 -7.7861 -15.9902 -20.8031 50.1840 29.5016 106.3690 5.9214 8.6816 -6.5899 -0.1741 -0.2027 2.1210 0.5874 vceln_mat = 1 4 5 1 3 4 5 6 1 2 3 4 6 1 2 4 5 6 1 2 3 1 2 3 5 6 vvern_py = array([[ -6.93864391, 1.79801934, -7.78610533], [-15.9902125 , -20.80310202, 50.1840397 ], [ 29.501584 , 106.36899584, 5.92137852], [ 8.68156407, -6.58985621, -0.17410448], [ -0.20266123, 2.12100225, 0.58735065]]) vceln_py = [[], [-1, 0, 2, 3, 4], [-1, 2, 3], [-1, 0, 1], [-1, 0, 1, 2, 4], [-1, 1, 2, 3, 4], [-1, 0, 1, 3, 4]] 当您专注于vceln时,您会注意到MATLAB和Python之间的值是相同的,因为可以通过在vceln_mat中添加两个来获得vceln_mat。但是,行顺序不同,并且我很难将vceln_py转换为vceln_mat。

我以为可以通过将MATLAB的Qhull选项应用于Python来解决此问题,但无法获得相同的输出。 (关于voronoin的选项: https ://jp.mathworks.com/help/matlab/ref/voronoin.html ? lang = en#bqurvsm-1)如果有人可以解决此问题,我将不胜感激。



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 21:45


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.