次のジェネレータ関数を考えると...
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
結果のdictの長さをリストすると、次の出力が得られます。
[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