如何为两个不同的数据应用循环

2024-06-08 20:04:19 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的数据

data1 = [0, 1.12, 0.96]
data2 = [0.96, 0, 0]
data3 = [0, 1.2, 1.28]

length_T_bd = 220 #Newton
length_T_be = 250 #Newton
length_r_bd = 0
r_d = np.array(data1)
r_b = np.array(data2)
r_e = np.array(data3)

计算

r_bd = r_b - r_d
r_be = r_b - r_e

for value in r_bd:
    length_r_bd += value ** 2
    length_r_bd = np.sqrt(length_r_bd)
    u_bd = r_bd / length_r_bd
    T_bd = length_T_bd * u_bd

如上图所示,我可以获得T_bd。另外,我想通过同样的程序获得T_be。但是,我需要使用FOR循环两次来完成此操作

有没有办法让它变得更明智呢


Tags: 数据in程序forvaluenpnewtonsqrt
2条回答

仅当r_bd和r_be具有相同的长度时,此选项才有效:

r_bd = r_b - r_d
r_be = r_b - r_e

for value_bd, value_be in zip(r_bd, r_be):
  length_r_bd += value_bd ** 2
  length_r_bd = np.sqrt(length_r_bd)
  u_bd = r_bd / length_r_bd
  T_bd = length_T_bd * u_bd

  length_r_be += value_be ** 2
  length_r_be = np.sqrt(length_r_be)
  u_be = r_be / length_r_be
  T_be = length_T_be * u_be

似乎您希望对多个不同的输入应用相同的处理。这里需要的是一个函数。此外,您似乎覆盖了许多变量,因此:

def do_calc(ar, length_T):
    length_r = np.sqrt(ar ** 2) # This is where the 'iteration' happens
    u = ar / length_r
    T = length_T * u
    return T

T_bd = do_cal(r_bd, length_T_bd)
T_be = do_cal(r_be, lenght_T_be)

相关问题 更多 >