【问题标题】:Matlab cell array to python list conversionMatlab单元格数组到python列表的转换
【发布时间】:2018-09-22 05:59:48
【问题描述】:

我有大小为(1,260) 的 Matlab 单元数组,但我无法将其转换为 Python 列表。我的代码如下:

i=sio.loadmat('bispec.mat')
k=i['a']

执行代码后,我在变量资源管理器中获取这些实体。

我正在尝试通过以下代码将名为 k 的 Matlab 元胞数组转换为 Python 列表。

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

但我收到以下错误。

【问题讨论】:

标签: python matlab type-conversion


【解决方案1】:

如其中一张图片所示,您已经尝试过:

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

double 周围不应有逗号。你应该实际使用:

val = np.asarray(k, dtype=np.longdouble).tolist().


此外,发生此错误的另一个原因是尝试将字符串用作double 数组类型中的元素。如果你真的想要一个包含字符串和双精度的 NumPy 数组,你可以使用 dtype object,它使数组能够保存任意 Python 对象,如图所示。

val = np.asarray(k, dtype=object).tolist().

【讨论】:

  • 我试过了,但没有用。生成以下错误: val = np.asarray(k, dtype=double).tolist() Traceback (最近一次调用最后): File "", line 1, in val = np.asarray(k, dtype=double).tolist() NameError: name 'double' is not defined
  • val = np.asarray(k, dtype=object).tolist() 它有效。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-22
  • 2015-08-10
  • 2019-10-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-14
相关资源
最近更新 更多