【发布时间】:2019-02-08 18:28:27
【问题描述】:
我正在尝试创建一个要在 matlab 环境中读取的文件。 matlab中的结构是这样的
trx(1) =
x: [1×1500 double]
y: [1×1500 double]
a: [1×1500 double]
b: [1×1500 double]
theta: [1×1500 double]
firstframe: 1
endframe: 1500
nframes: 1500
off: 0
trx(2) =
x: [1×751 double]
y: [1×751 double]
a: [1×751 double]
b: [1×751 double]
theta: [1×751 double]
firstframe: 750
endframe: 1500
nframes: 751
off: -749
所以很自然地,我创建了一个包含必填字段的 python 字典并创建了一个列表,然后使用了 savemat。但是,当我在 matlab 中加载时,我只得到单元格数组。我也尝试使用this,但问题是并非所有字段都是具有相同形状的数组,例如'firstframe'是一个int。然后当我使用 fromarrays() 但它抱怨因为形状不匹配。
我现在正在尝试将字典转换为结构化数组,但没有找到任何相关内容。并且还尝试创建一个允许数组使用不同形状的 numpy 记录。任何灯都非常受欢迎
【问题讨论】:
-
Python 对象和 MATLAB 之间的映射很棘手。您可以尝试在 MATLAB 中创建一个示例,保存它,然后
loadmat。这应该可以更清楚地了解 MATLAB 需要什么。 -
我对此有点生疏,但我认为 MATLAB 矩阵映射到订单 F
ndarray。cell到对象 dtype 数组上。结构化数组上的struct(即带有复合dtype,在您的链接中记录数组)。进入结构化数组的数组必须在形状上匹配。
标签: python matlab numpy structured-array