0

使用 Python3 读取文件时遇到一些奇怪的问题。使用 Matlab 我有代码

fid = fopen('histograms_testi.bin','r');    
data = fread(fid,'*uint16','ieee-be');
fclose(fid);

%reshaping 

data = reshape(data,4096,numel(data)/4096);

数据现在是一些形状矩阵(10127、4096),这很好(后来我将其重塑为 10100x 4096 形式)

使用 Python3,我尝试使用不同的方法读取同一个文件,即

data = np.fromfile('histograms_testi.bin', dtype='>f8', count=-1)

这是 在 Python 中读取二进制大端文件中给出的 。不幸的是,这会给出错误

ValueError: cannot reshape array of size 10370048 into shape (2531,4096)


我使用 Python3 的方法如下

data= np.fromfile('histograms_testi.bin', 'uint16')

我可以很容易地把它重塑成我想要的形状

rs = data.reshape(int(len(data)/4096),4096)
rs = rs[:10100]


现在问题/奇怪的部分是,y 轴上的比例完全不同。(x 轴看起来完全一样)。

使用 matlab (data(:,1)) 的第一个数据“行”的最大值为 118,而 Python 为 30208。

我有点担心,即使图形的形状相同(y 轴上的比例不一样),结果也不会完全正确。

有任何想法吗?

4

0 回答 0