不误正业的大卫 2020-03-29 21:58 采纳率: 0%
浏览 228

python的scipy库读取mat文件抛出ValueError?

  • 目标

想用python读取Octave保存的变量

  • 我的做法

OCtave保存方式:
使用U=eye(5)定义了一个变量
再使用save Ud.mat U命令保存了变量到文件

python读取方式:

import scipy.io as scio
d=scio.loadmat("Ud.mat")
  • 结果

报错如下:
图片说明

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-25 16:40
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    • 问题分析
    • 根据报错信息看出,Python无法读取Octave保存的.mat文件,可能是因为Octave保存的.mat文件与Python的scipy库不兼容。
    • 解决方案
    • 1. 尝试使用其他方法保存Octave变量,比如保存为txt文件再进行读取。 2. 转换Octave保存的.mat文件格式,使其兼容Python的scipy库。
    • 示例代码
    • Octave保存为txt文件: ```octave U=eye(5); dlmwrite('Ud.txt', U, ' '); ``` Python读取txt文件: ```python import numpy as np data = np.loadtxt('Ud.txt') print(data) ``` 尝试转换Octave保存的.mat文件,使其兼容Python的scipy库: ```octave U=eye(5); save -v7 Ud_compat.mat U ``` Python读取转换后的.mat文件: ```python import scipy.io as scio data = scio.loadmat("Ud_compat.mat")['U'] print(data) ```
    评论

报告相同问题?