python - 循环中的荒谬变量更新
问题描述
我是python的初学者。
我正在编写一个简单的脚本来使用克莱默规则计算线性方程组 (Ax= b) 的解。我将系数矩阵 (A) 和常数矩阵 (b) 声明为 numpy 数组,并初始化了一个循环,该循环在原始系数矩阵的列替换后生成三个矩阵。
import numpy as np
A = np.array([[1,2,3],[4,5,6],[7,7,9]])
b = np.array([1,1,1])
var_holder= {}
for i in range(0,3):
print(A)
A_changed = np.transpose(A)
A_changed[i] = b
var_holder['A_' + str (i+1)] = np.transpose(A_changed)
del(A_changed)
locals().update(var_holder)
print(A_1)
print(A_2)
print(A_3)
这个输出似乎是三个恒等矩阵,其中 A 在每个迭代步骤中都得到更新。这不是我们想要的。
但是,如果我在循环中声明 A ,它可以解决问题:
import numpy as np
b = np.array([1,1,1])
var_holder= {}
for i in range(0,3):
A = np.array([[1,2,3],[4,5,6],[7,7,9]])
print(A)
A_changed = np.transpose(A)
A_changed[i] = b
var_holder['A_' + str (i+1)] = np.transpose(A_changed)
del(A_changed)
locals().update(var_holder)
print(A_1)
print(A_2)
print(A_3)
我不确定是什么导致变量 A 在每个迭代步骤中更新。请帮助我理解这个问题,以便更清楚。蒂亚!
解决方案
推荐阅读
- python - 在 pytest 中为多个测试运行相同的进程
- r - 使用 R,是否有更好的方法来收集具有多个记录系列的每个人的记录开始和结束天数
- flutter - 在堆栈和列中包装定位小部件时出现颤振错误(无限像素溢出的 RenderFlex。)
- java - 从一个特定元素中查找所有值
- ios - 如何修复 Xcode 中不等的标签大小?
- windows - 如何更改文件夹中的所有文件夹图标 windows 10
- eclipse - 在 Eclipse 中处理草图未按预期工作
- objective-c - Core Data + CloudKit 迁移:无法在生产模式中的记录 [...] 中创建或修改字段 [...]
- python - SymPy solve():UnboundLocalError:分配前引用的局部变量“solved_syms”
- javascript - Feathersjs TypeError:app.publish 不是函数