#python #matlab
#python #matlab
Вопрос:
Я конвертирую код Matlab в Python.Я наткнулся на функцию ‘voronoin’ в Matlab, которая выдает вершины и массив ячеек в качестве выходных данных. Из моей программы я получаю только вершины. Массив ячеек, который я получаю из своей программы, не совпадает с тем, который я получил в Matlab.
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial import Voronoi
def voronoi_volumes(points):
v = Voronoi(points)
print(v.vertices)
for i, reg_num in enumerate(v.point_region):
print(reg_num)
indices = v.regions[reg_num]
print(indices)
points = np.array([[ 0.4074, 0.4567],
[ 0.4529, 0.3162],
[ 0.0635, 0.0488],
[ 5, -45],
[ 5, 55],
[-45, 5],
[ 55, 5]])
k = voronoi_volumes(points)
В Matlab у меня есть результат:
[9,5,3,4,7]
[9,7,6,8]
[7,4,2,6]
[8,1,2,6]
[5,1,3]
[4,2,1,3]
[9,5,1,8]
В Python результат, который я получаю, является:
[7, 3, 1, 2, 5]
[7, 5, 4, 6]
[5, 2, 0, 4]
[6, -1, 0, 4]
[-1, 1, 3]
[-1, 0, 2, 1]
[7, 3, -1, 6]
Ответ №1:
Ответ, который я получаю в python, правильный.Matlab и Python имеют разные индексы. когда я пытаюсь получить доступ к вершинам из индексов, я получаю одинаковые ответы от обоих.