2013-05-20 33 views
1

我想将复数数据写入(6,31)维数据集。 在第一列应该从第一个输入文本文件在第一复数据,在谢胜利,应该有数据形成谢胜利输入textilfe ...Python写数据到hdf5文件

import numpy,sys 
import h5py as H5 


####################################################### 

def CreateH5(argv): 
    F=H5.File("S12.h5","w") 
    dset=F.create_dataset('S11',(6,31),dtype='complex128') 

    for arg in argv: 
      S11f = numpy.loadtxt(arg,skiprows=3) 
      S11fc=S11f[:,1]*numpy.exp(S11f[:,-1]*1j*(180./numpy.pi)) 

      for i in range(dset): 
        dset[i]=S11fc 


if __name__=='__main__': 
    CreateH5(sys.argv[1:]) 

我不知道如何处理for i in range(dset):

回答

0

我不确定你想用你的forloop做什么。我的理解是,你有6个文件,每个文件有31个复杂的值,你想在你的数据集中的值?

如果是这样,只是列举你的循环上的argv并把numpy的阵列到数据集中:

for index, arg in enumerate(argv): 
    S11f = numpy.loadtxt(arg,skiprows=3) 
    S11fc=S11f[:,1]*numpy.exp(S11f[:,-1]*1j*(180./numpy.pi)) 
    dset[index] = S11fc 

但是为什么使用hd5f而不是简单的numpy的阵列?