使用 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 轴上的比例不一样),结果也不会完全正确。
有任何想法吗?