如果我们考虑以下生成器函数...
def loadrun(runs, varnames=None):
for fle in runs:
yield loadmat(fle, variable_names=varnames)
我们称之为...
vnames = ['targetpos', 'cuepos', 'soa', 'response']
trials = loadrun(datafiles, vnames) # datafiles is a list of paths to files
列出结果字典的长度时,我们得到以下输出:
[in] for t in trials:
print len(t)
[out] 7
128
128
128
128
128
128
128
所有.mat
文件都包含 124 个变量,因此只有第一个输出是正确的。是什么赋予了?
编辑
我进一步缩小了问题的范围。似乎loadmat
'字段在任何循环variable_names
中的第一次迭代后都失败了。知道这里发生了什么吗?
for df in datafiles:
print len(loadmat(df, variable_names=vnames))
[out] 7
128
128
128
128
128
128
128