2010-12-08 70 views
0

我的代码下面没有填充名为RRmeanArray的numpy/pylab数组。任何人都可以告诉我如何修复代码,使其填充数组?填充numpy数组的问题

import pylab as p 
    RRmeanArray = p.array([]) 
    startBeatIndex = 0 
    endBeatIndex = 10 
    for k in range(int(p.floor(len(QRSandRRarray[0])/10))-1): 
     print '++++++++++++++++++++++++++++++++++++++++++++' 
     print 'k is: ',k 
     print 'startBeatIndex is: ',startBeatIndex 
     print 'endBeatIndex is: ',endBeatIndex 
     print 'p.mean(QRSandRRarray[1,startBeatIndex:endBeatIndex]) is: ',p.mean(QRSandRRarray[1,startBeatIndex:endBeatIndex]) 
     newMean = p.mean(QRSandRRarray[1,startBeatIndex:endBeatIndex]) 
     print 'newMean is: ',newMean 
     RRmeanArray += [newMean] 
     print 'len(RRmeanArray) is: ',len(RRmeanArray) 
     startBeatIndex += 10 
     endBeatIndex += 10 
     print '++++++++++++++++++++++++++++++++++++++++++++' 

这里是我得到如蟒蛇外壳输出k的一个典型的迭代:

++++++++++++++++++++++++++++++++++++++++++++ 
k is: 619 
startBeatIndex is: 6190 
endBeatIndex is: 6200 
p.mean(QRSandRRarray[1,startBeatIndex:endBeatIndex]) is: 0.5971 
newMean is: 0.5971 
len(RRmeanArray) is: 0 
++++++++++++++++++++++++++++++++++++++++++++ 

编辑: 谢谢,托马斯。你几乎得到它。工作版本是:

RRmeanArray = p.zeros(len(range(int(p.floor(len(QRSandRRarray[0])/10))-1))) 
    startBeatIndex = 0 
    endBeatIndex = 10 
    for i,k in enumerate(range(int(p.floor(len(QRSandRRarray[0])/10))-1)): 
     newMean = p.mean(QRSandRRarray[1,startBeatIndex:endBeatIndex]) 
     RRmeanArray[i] += [newMean] 
     startBeatIndex += 10 
     endBeatIndex += 10 

现在回答了这个问题。

+3

如果您与其他MedicalMath相同,则应使用该帐户。 – Thomas 2010-12-08 22:04:15

+0

这是否真的做到了你想要的?我很困惑这一行:RRmeanArray [i] + = [newMean] – Thomas 2010-12-09 02:41:05

回答

1

对于numpy数组,显然+ =操作符(它调用方法array.extend)不存在。如果你使用的是一个numpy数组,你应该预先分配它,使其成为你所需要的全部大小。

RRmeanArray = p.zeros(len(range(int(p.floor(len(QRSandRRarray[0])/10))-1))) 
for i,k in enumerate(range(int(p.floor(len(QRSandRRarray[0])/10))-1)): 
    RRmeanArray[i] = p.mean(QRSandRRarray[1,startBeatIndex:endBeatIndex]) 
    startBeatIndex += 10 
    endBeatIndex += 10 

添加到阵列的到底是不是真的有什么numpy的阵列是 - 为您可能需要一个列表。

编辑:修正newMean是RRmeanArray,一直以来是什么意思。 我认为这是你想要的,而不是你用[newMean]增加RRmeanArray [i]的版本,但是我很高兴为你工作。