我使用Scipy将matlab2d矩阵加载到Python中。在MATLAB中,MAT是32x40字符矩阵。每个索引中都有一个字符。但是,当加载到Python中时,它变成了(32,)
numpy
array
,所有字符现在都被视为32行字符串,而不是32行最大长度为40个字符的字符。如何将这个32行数组分解回一个包含32行40列字符的二维数组?你知道吗
a = np.array([])
matdata = spio.loadmat(misspath)
a = np.append(a, matdata['D_package'])
a_data = matdata['a_data']
Python numpy
(32,)
:
Out[545]:
array([['PLPBTKNLYLHDFWVCEVTTNMTTBFFVAGLDEGHFFFTP'],
['PRiDAEo rooWEnaFFDAKAuSOrRERltrAFFCCeo'],
['FltRGFUrAGFtwSxxLLLLLrIAossDGDPAAAAsw'],
[' FKDDFWa plG iiFDGGSSD\x00\x02u3t te\x003411te'],
.....
原始MATLAB (32,40)
:
val =
PLPBTKNLYLHDFWVCEVTTNMTTBFFVAGLDEGHFFFTP
PRiDAEo rooWEnaFFDAKAuSOrRERltrAFFCCeo
FltRGFUrAGFtwSxxLLLLLrIAossDGDPAAAAsw
FKDDFWa plG iiFDGGSSD\x00\x02u3t te\x003411te
....
在R2016b之前,MATLAB没有字符串数据类型,而是将字符串存储为字符向量,这就是大多数MATLAB代码的编写方式。因此
loadmat
合理地假设,来自MATLAB的n维字符数组应该被解释为n-1维字符串数组。你知道吗如果您确实希望在Python中使用一个数组,其中每个元素都是单个字符,那么使用列表理解很容易进行转换:
相关问题 更多 >
编程相关推荐