您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在python中创建Matlab单元数组

在python中创建Matlab单元数组

执行此操作时:

a = np.array([[np.array([[2, 2]]), np.array([[3, 3]])]])

最后一次调用np.array实际上将内部的两个连接起来,所以最后得到一个数组:

>>> a
array([[[[2, 2]],

        [[3, 3]]]])

>>> a.shape
(1, 2, 1, 2)

但是要模仿一个单元格数组,您基本上需要一个数组数组。您可以通过设置来实现这一点dtype=object,但是必须创建数组并分别设置元素,以避免自动合并。

three = array([[array([[2, 2, 2]]), array([[3, 3]])]])
two = np.empty(three.shape, dtype=object)
two[0,0,0] = np.array([[2,2]])
two[0,1,0] = np.array([[3,3]])

然后:

sio.savemat('two.mat', {'two': two})

看看它们是什么样的:

>>> two
array([[[array([[2, 2]])],
        [array([[3, 3]])]]], dtype=object)

>>> two.shape
(1, 2, 1)

请注意,由于您有太多嵌套的括号,因此我可能对您想要的形状感到困惑,因此您可能必须重塑其中的一些形状,但是无论如何都应保持这种想法。

python 2022/1/1 18:49:33 有368人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶