Reading binary file with fread and typecast
12 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
More Answers (0)
See Also
Categories
Find more on Numeric Types in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!