我想在两个未排序的数组(x和y)限定的区域内找到它们。如果它们是已排序的,我只需遵循example:
theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True)
x = np.sin(theta)
y = np.cos(theta)
answer = np.trapz(y, x=x)
其中,x和y数组的排序正确,trapz也能正常工作(即使endpoint=False)。但是,在我的数据中,x和y没有排序。我想找出x和y包围的区域,如下例所示:
theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True)
ii = np.arange(len(x))
np.random.shuffle(ii)
x = np.sin(theta)[ii]
y = np.cos(theta)[ii]
answer = np.trapz(y, x=x) #This no longer gives the correct integral.
有没有一种方法可以找到数组包围的区域,而不用按Angular 位置排序?它不一定要使用trampz。谢谢
1条答案
按热度按时间rsl1atfo1#
我还没有尝试过Convex Hull,但最后只是简单地按Angular 位置对点进行排序,并(在点实际上包围一个曲面的假设下)使用trapz进行积分。