如何在python中使用类似matlab'fread'的函数?

2024-09-29 23:21:26 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个.dat file.

在Matlab中,我可以用这个代码来阅读。在

lonlatfile='NOM_ITG_2288_2288(0E0N)_LE.dat';
f=fopen(lonlatfile,'r');
lat_fy=fread(f,[2288*2288,1],'float32');
lon_fy=fread(f,[2288*2288,1],'float32')+86.5;
lon=reshape(lon_fy,2288,2288);
lat=reshape(lat_fy,2288,2288);

以下是Matlab的一些结果: matalab

如何在python中得到相同的结果?在

PS:我的代码是:

^{pr2}$

但是,结果与Matlab的结果不同。在


Tags: 代码lenomdatfilelonlatmatlab
1条回答
网友
1楼 · 发布于 2024-09-29 23:21:26

您应该能够将代码直接翻译成Python,而无需做任何更改:

lonlatfile = 'NOM_ITG_2288_2288(0E0N)_LE.dat'
with open(lonlatfile, 'rb') as f:
    lat_fy = np.fromfile(f, count=2288*2288, dtype='float32')
    lon_fy = np.fromfile(f, count=2288*2288, dtype='float32')+86.5
lon = lon_ft.reshape([2288, 2288], order='F');
lat = lat_ft.reshape([2288, 2288], order='F');

通常情况下,由于索引顺序不同,numpy整形会与MATLAB结果进行转换。order='F'部分确保最终输出具有与MATLAB版本相同的布局。它是可选的,如果你记得不同的索引顺序,你可以不使用它。在

with open() as f:以安全的方式打开文件,确保完成后再次关闭该文件,即使程序有错误或由于任何原因被取消。严格地说,这是不需要的,但您确实应该在打开文件时始终使用它。在

相关问题 更多 >

    热门问题