index scipy.io.matlab.mio5_params.mat_struct with list



我有许多.mat文件,我需要将它们带入Python并做事。我找到了一种在此处轻松处理.mat文件的方法。这效果很好,但是现在我想迭代所有值。我该怎么做呢?

wObs = 'path/to/matfile.mat'
mat = loadmat(wObs)
mat = mat['wObjs']
#function I wrote to get the field names of the .mat file. Returns a list of field names.
fields = mat_feildnames(wObs, 'wObjs') 
#now I want to itterate over the data and do things... 
for row in range(len(mat)):
    for field in fields:
        #field is string value.. how do I make this work?
        #this format if field is a valid field name will return what I want. 
        print(mat[row].field)

>>mat['wObjs'] 
   Returns:
   array([<scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe5e80>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe5eb8>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7080>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7048>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe70f0>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe71d0>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe72b0>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7518>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe75c0>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7668>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe76a0>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7748>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe77f0>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe78d0>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7940>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe79b0>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7a20>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7a90>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7b00>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7b70>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7be0>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7c50>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7cc0>,
   <scipy.io.matlab.mio5_params.mat_struct object at 0x7f0de3fe7d30>], dtype=object)

我重新阅读了链接到帖子的链接,并认为我会尝试较小的响应来查看它的所作所为。.是的..是的!以下是我上述问题的答案。

import scipy.io as spio
vig=spio.loadmat(wObs,squeeze_me=True)
for field in fields:
    print(vig['wObjs'][field])

最新更新