我之前发过类似的问题,但这次问题有所不同,我对以下代码感到困惑。有人帮忙吗?提前感谢
我按照建议修复了mu代码,谢谢
from numpy import *
#vs,fs,rs are all m*n matrixs,got initial values in,i.e vs[0],fs[0],rs[0] are known
#want use this foor loop to update them
vs=zeros((10,3))
vs[0]=([1,2,3])
fs=zeros((10,3))
fs[0]=([2,3,4])
vs=zeros((10,3))
vs[0]=([3,4,5])
for i in range(5):
#start looping..
vs[i+1]=vs[i]+fs[i]
fs[i+1]=(rs[i]-re[i])
rs[i+1]=rs[i]+vs[i]
print vs,fs,rs
然后这段代码在不同的i中给出vs,fs,rs,但不更新rs,fs,vs的每一行,并返回rs,fs,vs(完全更新)的单个数组。这是什么问题?我应该添加什么?谢谢
答案 0 :(得分:2)
将您的inizialization 放在循环之外!现在,你正在通过循环将数组重置为全部为零,这是荒谬的。你似乎也有一个错字 - 你设置vs两次而rs从不 - 所以我试着猜测你的意思。
from numpy import *
#vs,fs,rs are all m*n matrixs,got initial values in,i.e vs[0],fs[0],rs[0] are known
#want use this foor loop to update them
vs=zeros((10,3))
vs[0]=([1,2,3])
fs=zeros((10,3))
fs[0]=([2,3,4])
rs=zeros((10,3))
rs[0]=([3,4,5])
for i in range(5):
#start looping..
vs[i+1]=vs[i]+fs[i]
fs[i+1]=rs[i]-re[i]
rs[i+1]=rs[i]+vs[i]
print vs,fs,rs
答案 1 :(得分:0)
您不会在评论指示的位置开始循环,而是在for i in range(5):
行。缩进块中的所有内容(for-loop的主体)都是针对每个i
重复完成的。因此,重复完成将vs
和fs
设置为零,每次删除之前计算的内容。这些初始化应在for
之前完成。
同样vs
初始化两次,而rs
根本没有初始化,可能这是一个错字,它应该是这样的:
vs=zeros((10,3))
vs[0]=([1,2,3])
fs=zeros((10,3))
fs[0]=([2,3,4])
rs=zeros((10,3))
rs[0]=([3,4,5])
for i in range(5):
#start looping..
...
答案 2 :(得分:0)
我不知道你想要打印什么。如果你想在每次更新时打印每个矩阵,那么你就没事了。但是如果你想在所有更新完成后打印矩阵,那么你应该把那个print语句带出for循环。
这和Alex和他们所说的应该完全修复你的代码