从python创建.mat文件

2024-05-29 06:00:04 发布

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

我有一个变量exon = [[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10]]]。我想创建一个mat文件,如下所示

>>

exon : [3*2 double] [2*2 double]

当我使用python代码执行同样的操作时,它会显示错误消息。这是我的python代码

import scipy.io
exon  = [[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10]]]
scipy.io.savemat('/tmp/out.mat', mdict={'exon': (exon[0], exon[1])})

这将是伟大的任何人都可以提出同样的建议。 提前谢谢 可控震源


Tags: 文件代码ioimport消息错误scipyout
2条回答

在Matlab中,似乎需要两个不同的数组链接到同一个变量名。这是不可能的。在MATLAB中,可以有包含其他数组的单元格数组或结构,但不能只有一个数组元组分配给单个变量(这是MDCT中的{exon':(exon[0],exon1)中的情况)-MATLAB中没有元组的概念。

您还需要创建对象numpy数组:

import numpy as np
exon = [ np.array([[1, 2], [3, 4], [5, 6]]), np.array([[7, 8], [9, 10]]) ]

有一个scipy文档here详细介绍了如何保存不同的Matlab类型,但是假设您想要单元格数组:

obj_arr = np.zeros((2,), dtype=np.object)
obj_arr[0] = exon[0]
obj_arr[1] = exon[1]
scipy.io.savemat('/tmp/out.mat', mdict={'exon': obj_arr})

这将在matlab中产生以下结果:

code result in matlab

或者可能(未经测试):

obj_arr = np.array(exon, dtype=np.object)

Sage是一个开源的数学软件,旨在将python语法和python解释器与其他工具(如Matlab、Octave、Mathematica等)捆绑在一起。。。

也许你想看看:

相关问题 更多 >

    热门问题