【发布时间】:2021-01-17 10:20:31
【问题描述】:
我有一个从 Matlab 获得的 .mat 数据集,其中包含一些数据,包括一个 1920x1 元胞数组字符串,存储如下:
"sample1"
"sample2"
"sample3"
我需要在 Python 中将其作为列表或数组导入。我已经使用来自 scipy 的loadmat 得到了我的垫子,并且可以正常导入其他类型的数据,但是我在尝试导入单元字符串数组时遇到了问题:
import scipy.io as spio
import pandas as pd
import numpy as np
mat = spio.loadmat('Dati.mat', squeeze_me=True)
FD_Labels_cell = mat_char['FD_Labels']
list= np.asarray(FD_Labels_cell, dtype=object).tolist()
print(list)
输出:
[[MatlabOpaque([(b'', b'MCOS', b'string', array([[3707764736],
[ 2],
[ 1],
[ 1],
[ 1],
[ 1]], dtype=uint32))],
dtype=[('s0', 'O'), ('s1', 'O'), ('s2', 'O'), ('arr', 'O')])], [MatlabOpaque([(b'', b'MCOS', b'string', array([[3707764736],
[ 2],
[ 1],
[ 1],
[ 2],
[ 1]], dtype=uint32))],
dtype=[('s0', 'O'), ('s1', 'O'), ('s2', 'O'), ('arr', 'O')])], [MatlabOpaque([(b'', b'MCOS', b'string', array([[3707764736],
[ 2],
[ 1],
[ 1],
[ 3],
[ 1]], dtype=uint32))],
dtype=[('s0', 'O'), ('s1', 'O'), ('s2', 'O'), ('arr', 'O')])], [MatlabOpaque([(b'', b'MCOS', b'string', array([[3707764736]
然后输出继续。 我不知道为什么我会得到这种输出,而且我无法从我的 Matlab 文件中获取单元格。
【问题讨论】:
-
MatlabOpaque表示单元格包含loadmat无法转换为 python 等效项的 MATLAB 对象。 -
所以不兼容。好的,谢谢!
-
能否将您的元胞数组转换为
table,然后将其写入 csv (writetable)?
标签: python string matlab numpy cell-array