1

我想将复杂数据写入(6,31)维数据集。在第一列中应该有来自第一个输入文本文件的第一个复杂数据,在第二列中应该有来自第二个输入文本文件的数据......

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):

4

1 回答 1

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 数组呢?

于 2013-07-12T07:39:56.237 回答