首页 > 解决方案 > 错误:3D Matlab 数组到 0 维 np 数组

问题描述

我在 python 中将 3 维 matlab 数组转换为 3 维 np 数组时遇到问题。当我读入它时,一条错误消息显示它是一个 0 维 np 数组。

这是我正在使用的代码:

import scipy.io
import numpy as np 

mat = scipy.io.loadmat('2021.01.25.FC.mat')
matrix = np.array(mat)

但是,当我像这样索引数组时:

x=matrix[2,2,2]

我收到此错误:

IndexError: too many indices for array: array is 0-dimensional, but 3 were indexed

有谁知道这个数组在 numpy 中作为 0 维数组被读入的原因或如何纠正这个问题?

谢谢!

标签: pythonmatlabnumpymultidimensional-arraytransform

解决方案


我认为这是由于scipy.io.loadmat文档所暗示的那样,“mat”是一本字典。

'mat' 可能是一个字典,它存储了 '2021.01.25.FC.mat' 文件中存在的所有变量。如果您感兴趣的矩阵在您的 matlab 文件中名为“MyMatrix”,那么快速修复可能是:

import scipy.io
import numpy as np 

mat = scipy.io.loadmat('2021.01.25.FC.mat')['MyMatrix']
matrix = np.array(mat)

推荐阅读