gpt4 book ai didi

python - 在python中创建v7.3的.mat文件

转载 作者:行者123 更新时间:2023-11-30 22:58:03 37 4
gpt4 key购买 nike

我需要在 python 或 matlab 中执行涉及 60000X70000 矩阵的乘法。我有 16GB RAM,能够轻松加载矩阵的每一行(这就是我所需要的)。我可以在 python 中创建整个矩阵,但不能在 matlab 中创建。无论如何,我可以使用 h5py 或 scipy 将数组保存为 v7.3 的 .mat 文件,以便我可以单独加载每一行吗?

最佳答案

对于 MATLAB v7.3,您可以使用 hdf5storage这需要h5py ,在此处下载文件,解压,然后输入:python setup.py install从命令提示符。 https://pypi.python.org/pypi/hdf5storage

import h5py
import hdf5storage
import numpy as np

matfiledata = {} # make a dictionary to store the MAT data in
matfiledata[u'variable1'] = np.zeros(100) # *** u prefix for variable name = unicode format, no issues thru Python 3.5; advise keeping u prefix indicator format based on feedback despite docs ***
matfiledata[u'variable2'] = np.ones(300)
hdf5storage.write(matfiledata, '.', 'example.mat', matlab_compatible=True)

如果 MATLAB 无法一次加载整个内容,我认为您必须将其保存在不同的变量中 matfiledata[u'chunk1'] matfiledata[u'chunk2'] matfiledata[u'chunk3']等等

然后在 MATLAB 中,如果将每个 block 保存为变量

load(filename,'chunk1')
do stuff...
clear chunk1
load(filename,'chunk2')
do stuff...
clear chunk2

等等

hdf5storage.savemat 有一个参数,允许将来将文件正确读入 Python,因此值得检查,并遵循 scipy.io.loadmat 格式...尽管如果保存数据,您可以执行类似的操作从 MATLAB 中轻松导入回 Python:

MATLAB    
save('example.mat','-v7.3')
Python
matdata = hdf5storage.loadmat('example.mat')

它将作为字典加载回 Python,然后您可以将其转换为您需要的任何数据类型。

关于python - 在python中创建v7.3的.mat文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36362831/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com