Reading binary file with fread and typecast
21 ビュー (過去 30 日間)
古いコメントを表示
I am trying to read a binary file with columns of data in various format (int32,uint32,int16,int64,etc.). As there are many columns of data, I want to speed up my reader by reading the whole file at once in increments of 8 bits and then recovering the various formats using the typecast function.
% Move to start of binary file (header is ascii format of 3759 bytes)
fseek(fid,3759,'bof');
% Read the data file as 8 bit increments (each row has 16660 bytes)
data = uint8(fread(fid,[16660,Inf],'16660*uint8'));
% Attempt to recover first data element of type int32
val1 = data(1:4,1);
val2 = typecast(uint8(val1),'int32');
Running this code I get that
val1 = [0 0 22 229]
val2 = -451543040
Whereas the true value should be 5861. What am I doing wrong?
0 件のコメント
採用された回答
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Numeric Types についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!