В Matlab раздел блока двоичных файлов 'block' имеет размер 2048 байт и читается следующим образом:
fseek(fileID, 2024, 'bof');
data = fread(fileID, block, '*float');
Выходные данные - это массив одинарной точности 2048x1, пример ниже ...
15.5567
-1.9876
0.0529
25.97620
В Python я стараюсь искать в том же разделе файла и использовать 2048 байт «блок» для чтения двоичного раздела.Затем я попытался использовать функцию struct unpack для преобразования двоичного кода в числа с плавающей запятой одинарной точности.
fileID.seek(2024,0)
data = unpack('2048f',block)
Сначала я получаю ошибки для байтов объекта длины.Поэтому я изменяю размер, чтобы увидеть, даст ли вывод хотя бы что-то похожее.
data = unpack('512f',block)
print(data)
Вывод дает очень маленькие и большие числа
-14.858826637268066
5.938749347655264e-36
1.767982006072998
-24509016064.0
Любая помощь приветствуется.Я также пытался использовать
data = numpy.frombuffer(block, dtype=numpy.float32)
с практически одинаковыми результатами.