gpt4 book ai didi

python - 如何避免键入一长串变量

转载 作者:太空宇宙 更新时间:2023-11-04 00:39:00 24 4
gpt4 key购买 nike

stackoverflow 的新手,也是编程的新手。

我有一组包含 32 个未知数的 32 个方程。我想使用 np.linalg.solve 求解这个方程:

a1 * x + b1 * y = c1a2 * x + b2 * y = C2(x 和 y 是未知数;a、b 和 c 是来自程序其他地方的变量)这看起来像:

eq1 = np.array([[a1,a2],[b1,b2]])
eq2 = np.array([c1,c2])
solution = np.linalg.solve(eq1,eq2)

在我的例子中,我没有 a 和 b,而是一个 32x32 矩阵,以 q(i,j) 的形式保存所有这些变量,而不是 c 一个以 p(i) 形式的 32x1 矩阵。这看起来像这样:

eq1 = np.array([[q(0,0),...,q(32,0)],...,[q(32,0),...,q(32,32)] 
eq2 = np.array([p(0),...,p(32)]
solution = np.linalg.solve(eq1,eq2)

它变得很长。我正在寻找一种方法来避免手动输入所有这些内容。据我所知,字典在这种情况下没有帮助,我仍然需要输入所有的键。我读过诸如 exec (这似乎会引起很多人过敏)和 setattr 之类的内容,但在我看来这些仍然无法解决问题......我尝试了一个双循环将 q(i,j) 写成字符串并将所有这些字符串连接成一个长字符串,但我不知道如何将其返回到我需要的原始变量中。

有没有其他方法可以做到这一点?如果可以简化解决方案,我不会坚持使用 np.alg.solve。提前致谢!

最佳答案

关于:

eq1 = np.array([[q(i, j) for i in range(33)] for j in range(33)])
eq2 = np.array([p(i) for i in range(33)])
solution = np.linalg.solve(eq1,eq2)

关于python - 如何避免键入一长串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42701994/

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