从循环中存储 numpy.ndarrays

Storing numpy.ndarrays from a loop

我正在尝试为循环的每次迭代存储定义为 x_cy_cz_c 的 numpy.ndarrays:

for z_value in np.arange(0, 5, 1):
    ms.set_current_mesh(0) 
    planeoffset : float = z_value 
    ms.compute_planar_section(planeaxis = 'Z Axis', planeoffset = planeoffset)
    m = ms.current_mesh()
    matrix_name = m.vertex_matrix()
    x_c = matrix_name[:,0]
    y_c = matrix_name[:,1]
    z_c = matrix_name[:,2]

我希望能够回忆起任何 z_value 处的三个数组,最好参考 z_value,即 x_c @ z_value = 2 或类似的。

感谢您的帮助!

p.s对编码很陌生,所以请放轻松。

您必须将每个数组存储在外部变量中,例如字典

x_c={}
y_c={}
z_c={}
for z_value in np.arange(0, 5, 1):
    ms.set_current_mesh(0)
    planeoffset = float(z_value)
    ms.compute_planar_section(planeaxis = 'Z Axis', planeoffset = planeoffset)
    m = ms.current_mesh()
    m.compact()
    print(m.vertex_number(), "vertices in Planar Section Z =", planeoffset)

    matrix_name = m.vertex_matrix()
    x_c[planeoffset] = matrix_name[:,0]
    y_c[planeoffset] = matrix_name[:,1]
    z_c[planeoffset] = matrix_name[:,2]

请确保在访问 vertex_matrix 之前调用 m.compact(),否则您将收到 MissingCompactnessException 错误。请注意,将任何内容存储在 x_c[2] 或 x_c[2.0] 中是不同的,因此请选择您的索引是否必须是整数或浮点数并保持相同的类型(在在这个例子中,它们是浮点数)。

稍后,您可以像这样回忆值:


print("X Values with z=2.0")
print(x_c[2.0])