帮助!功能

时间:2009-11-15 18:27:26

标签: python

我之前发过类似的问题,但这次问题有所不同,我对以下代码感到困惑。有人帮忙吗?提前感谢

我按照建议修复了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(完全更新)的单个数组。这是什么问题?我应该添加什么?谢谢

3 个答案:

答案 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重复完成的。因此,重复完成将vsfs设置为零,每次删除之前计算的内容。这些初始化应在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和他们所说的应该完全修复你的代码