【问题标题】:How to split 'matfile' (which has 4 elements)? I want to save each element into separate list如何拆分“matfile”(有 4 个元素)?我想将每个元素保存到单独的列表中
【发布时间】:2019-11-17 16:35:15
【问题描述】:

我正在尝试拆分 'xxx.mat' 文件中的 4 个元素,并希望将每个元素存储到一个单独的列表中。 换句话说,我想要 (100,100) 数据并保存到其他列表中 然后,我想使用该数据 (100,100) 制作图像文件 (.bmp)。

xxx.mat 文件包括

type       size 
list         0
bytes        1
string       1
float64  (100,100)

我试过了

a = np.genfromtxt('xxx.mat', delimiter=',')

但是,我得到的结果是

[[nan nan ....... nan nan]
 [nan nan ....... nan nan]

我尝试使用以下代码比较数据(我已将 MAT 文件转换为 CSV 文件)

mat_contents = sio.loadmat('xxx.mat')
a= np.genfromtxt('xxx.csv', delimiter=',')
[[nan nan ....... nan nan]
 [nan nan ....... nan nan]

【问题讨论】:

  • 请问matfile 是什么?我认为你省略了一个重要的标签。请问sio.loadmat()是什么?我认为你需要更清楚你在说什么以及你想做什么。谢谢。

标签: python image mat-file


【解决方案1】:

我将与您分享我想出的解决方案:

  1. 我从 matlab 中的随机数据创建了一个 .mat 文件并保存了它。
X = rand(100,100)
save("xxx.mat","X")
  1. 使用 scipy.io 和这个 answer 我将 .mat 文件加载到我的 python 工作区中
import scipy.io

mat = scipy.io.loadmat('xxx.mat')
X = mat["X"]
  1. 使用PILlibrary 将数据转换为黑白.bmp
from PIL import Image

img = Image.fromarray(X, 'L')
img.save('my.bmp')
img.show()

【讨论】:

    猜你喜欢
    • 2020-12-29
    • 2014-02-23
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2013-03-31
    相关资源
    最近更新 更多