【问题标题】:Importing matlab cell array (.mat) into a python list将matlab单元数组(.mat)导入python列表
【发布时间】:2018-04-28 00:15:59
【问题描述】:

我正在尝试导入一个包含元胞数组的 .mat 文件。 在matlab中我这样做了:

a={'element1';'element2';'element3'};
save('m.mat','-v7','a')

我使用“-v7”,因为在 python 中,我使用只能与版本 7 一起使用的“scipy.io”和“loadmat”。在 python 中:

import scipy.io as sio
i=sio.loadmat('m.mat')
i.keys()

我得到:

dict_keys(['__header__', '__version__', '__globals__', 'a'])

最后,我使用了键 'a':

k=i['a']

在变量资源管理器中,我得到 k,这是一个对象类型,但我无法访问它的元素。如何将其转换为列表?

谢谢

【问题讨论】:

    标签: python matlab cell


    【解决方案1】:

    我注意到 numpy.savetxt 可以使用一个字符串列将您的数据转换为 csv。所以,我试图遵循它的作用。我认为这就是你想要的:

    val = []
    for row in k:
        v = '%s' % tuple(row)
        val.append(v)
    

    如果你的数据是浮点数等数字,你可以试试这个:

    val = np.asarray(k, dtype='float').tolist()
    

    【讨论】:

      猜你喜欢
      • 2017-03-14
      • 2023-03-25
      • 1970-01-01
      • 2011-06-16
      • 2018-09-22
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多