使用lis索引scipy.io.matlab.mio5_params.mat_struct

2024-09-27 23:43:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有许多.mat文件,我需要把它们带到python中并使用它们。我找到了一种方法来轻松处理.mat文件here。 这很好用,但是现在我想迭代所有的值。我该怎么做?在

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)

Tags: 文件thetoiofieldobjectscipyparams
1条回答
网友
1楼 · 发布于 2024-09-27 23:43:56

我重新阅读了linked to post,想试试其中一个较小的回复,看看它做了什么。。成功了。。耶!下面是我上述问题的答案。在

import scipy.io as spio

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

相关问题 更多 >

    热门问题