gpt4 book ai didi

python - 如何使用 scipy.io.savemat 附加到 .mat 文件?

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:05 27 4
gpt4 key购买 nike

所以当我使用 savemat 命令时,它往往会覆盖文件。有没有可能的方法来追加而不是覆盖?我知道解决方法是将所有内容放入列表中,然后将其转换为字典。这对我不起作用,因为我正在努力提高 RAM 效率。在网上搜索我发现了这个 How NOT to overwrite the .mat file when using scipy.io.savemat()?

这也行不通,因为它涉及在您的 ram 内存中提取数据文件以在每个循环中附加它,从速度的角度来看这似乎很愚蠢。

我想过附加到一个 numpy 二进制文件,然后将其拉入并保存到一个 .mat 文件吗?不过,我不确定这是否会比第一个选项更有效地使用 RAM。

谢谢!

最佳答案

根据 savemat 文档:

file_name : str or file-like object

所以你可以在附加模式下打开文件,然后写入,例如

io.savemat('temp.mat',{'data':np.ones(10)})  # write
with open('temp.mat','ab') as f:
io.savemat(f, {'newdata':np.arange(5)}) # append
print io.loadmat('temp.mat').keys() # read
# dict_keys(['data', '__globals__', 'newdata', '__header__', '__version__'])

或完整描述:

{'data': array([[ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.]]),
'__globals__': [],
'newdata': array([[0, 1, 2, 3, 4]]),
'__header__': b'MATLAB 5.0 MAT-file Platform: posix, Created on: Fri Mar 13 14:14:33 2015',
'__version__': '1.0'}

https://github.com/scipy/scipy/blob/master/scipy/io/matlab/mio5.py#L34 中的注释这表明当数据文件中有函数时追加有问题,但这表明如果我们只是保存数组,追加不是问题。但也许需要进一步搜索 scipy 问题。

关于python - 如何使用 scipy.io.savemat 附加到 .mat 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29040276/

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