gpt4 book ai didi

python - 获取每个相邻三角形的最大值

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:47 26 4
gpt4 key购买 nike

我有一个带有三角形元素的网格。每个元素都有一个索引。我有一个检查邻居的功能,结果如下所示。

例如,[1, 2] 表示三角形 1 和三角形 2 是邻居,与三角形 1 和三角形 4 相同。

Adjacent_Elements = ([[1, 2], [1, 4], [2, 5], [4, 3], [3, 5] ... ])

现在我检查从一个元素到相邻元素的大小变化。数字表示尺寸比例的变化。

例如:对于第一对 [1, 2],我得到转换值 1,这意味着它们具有相同的大小。对于下一个对 [1, 4],我得到值 3,这意味着从元素 1 到元素 4 的大小变化是因子 3。对于对 [2, 5],我得到值 2,这意味着,大小的变化是因子 2。数组 Element_Transition 包含所有这些值。每对都有一个值。

Element_Transition = ([1, 3, 2, 1, 1.5, ...])

每个三角形至少有 1 个、最多 3 个邻居,因此每个三角形都有 1-3 个值。在此示例中,三角形 1 的大小变化了 1 倍(在 [1, 2] 处)以及 3 倍(在 [1, 4] 处),依此类推。

这是一个示例图片:Element Transition Factors

现在我需要的只是每个三角形的最大过渡值。

All_Trans_Values = ([[1, [1, 3]], [2, [1, 2], [3, [1, 1.5],...])
Max_Trans_Value = ([[1, 3], [2, 2], [3, 1.5], [4, 3]....])
^ ^ ^ ^
^ ^ ^ ^
these are the pairs from Adjacent_Elements
the second number is always the maximum transition value

或者只是值

Value = ([3, 2, 1.5, 3, ...])

有办法计算吗?它用于三角网格内部的质量研究。我只需要“坏”(=大)数字。

最佳答案

编辑后我更好地理解了您的问题,因此旧答案只是解决您问题的一部分。最初我以为你已经将值排序到三角形了。

新答案:

这应该可以满足您的要求。

Adjacent_Elements = np.array([[1,3],[1,4],[2,3],[3,4]])
Element_Transition = np.array([2,1,4,2])

# maybe you know the amount of triangles already
number_of_triangles = max(Adjacent_Elements.flatten())

# generating list of indexes
indexes = np.arange(1,number_of_triangles+1)
# generating list of zeros
zeros = np.zeros((number_of_triangles))
Max_Trans_Value = np.stack((indexes,zeros),axis=-1)

# iterating over all Adjacent_Elements with corresponding factor
for triangles,factor in zip(Adjacent_Elements,Element_Transition):
for triangle in triangles:
# if the factor is heigher than the currently stored one
if factor >= Max_Trans_Value[triangle-1,1]:
Max_Trans_Value[triangle-1,1] = factor

print(Max_Trans_Value)
# will print:
# [[1 2],
# [2 4],
# [3 4],
# [4 2]]
<小时/>

旧答案:

我猜您希望获得 All_Trans_Values 的每个子列表的最大值。

我将使用列表理解和 max() 函数中的构建。

a = [[1,1,3],[2,3],[1,2,2]]
c = [max(b) for b in a]

c 现在将包含所有最大值。[3,3,2]

关于python - 获取每个相邻三角形的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44489363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com