gpt4 book ai didi

python - 将 matlab 变量导出到文本以供 python 使用

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:44 24 4
gpt4 key购买 nike

所以让我们先说我是 matlab 的初学者。我正在使用 python,现在我在一个 matlab 文件中收到了一些数据,我需要将这些数据导出为我可以与 python 一起使用的格式。

我四处搜索,发现我可以使用以下方法将 matlab 变量导出到文本文件:

dlmwrite('my_text', MyVariable, 'delimiter' , ',');

现在我需要导出的变量是 0.006747668446927 形式的 double 16000 x 4000 矩阵。现在这里是问题开始的地方。我需要导出每个 double 的完整值。尝试使用该函数导致我以 0.0067477 格式导出数字。这是行不通的,因为我需要更精确地完成我正在做的事情。那么如何导出每个变量的完整值呢?或者,如果您有更优雅的方式在 python 中使用巨大的 matlab 矩阵,请随意。

问候,博格丹

最佳答案

在 Python 和 Matlab I 之间交换大量数值数据推荐HDF5

Python 绑定(bind)称为 h5py

这里有两个方向的例子。首先来自Matlab 转 Python

% matlab
points = [1 2 3 ; 4 5 6 ; 7 8 9 ; 10 11 12 ];
hdf5write('test.h5', '/Points', points);

# python
import h5py
with h5py.File('test.h5', 'r') as f:
points = f['/Points'].value

现在从 Python 到 Matlab

# python
import h5py
import numpy
points = numpy.array([ [1., 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12] ])
with h5py.File('test.h5', 'w') as f:
f['/Points'] = points

% matlab
points = hdf5read('test.h5', '/Points');

注意 在 Matlab 中,一列在 Python 中会显示为一行,反之亦然。这不是错误,而是 C 和 Fortran 解释内存中连续数据的方式之间的差异。

关于python - 将 matlab 变量导出到文本以供 python 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7117797/

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