python - 错误: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 维数组被读入的原因或如何纠正这个问题?
谢谢!
解决方案
我认为这是由于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)
推荐阅读
- qt - 交叉编译到树莓派时 JPEG 图像质量下降
- c# - 如何映射另一个表中的列?
- java - 如何从一个div下的不同元素中获取所有文本
- php - 如何在两个 DIV 之间进行嵌套的 For Loop 拆分输出?
- apache-kafka - 在 Ubuntu 的本地设置 kafka-connect 以与 debezium 和 WSO2 流处理器一起使用?
- numpy - 如何使用带有熊猫的随机森林来使用特征重要性?
- java - 如何使用 Spark 并行读取文件夹中具有不同 rowTag 的 xml 文件
- docker - docker 可以使用 http 请求从私有注册表中提取图像吗?
- node.js - 如何在 Node Js API 中添加身份验证?
- c# - 如果我在文本框 Asp.net MVC 上输入 carno,结果不显示