Offset must be a double error when reading file byte by byte
3 views (last 30 days)
Show older comments
I read the file byte by byte, I know the byte structure, the small end is 220,400,600,1000 and then 1220,1620... bytes, all values are uint16, I need to get a matrix for each byte order, i.e. 220:N, 420:N (N is the length of the file)
fid=fopen(fileName,'rb') % opens the file for reading
x1 = fread(fid, Inf, 'uint8', 220);
fseek(fid, 'bof', 220);
x2 = fread(fid, Inf, 'uint8', 400);
fseek(fid, 'bof', 620);
x3 = fread(fid, Inf, 'uint8', 600);
fseek(fid, 'bof', 1020);
x4 = fread(fid, Inf, 'uint8', 1000);
fclose(fid);
Error using fseek
Offset must be a double.
Error in Untitled3 (line 27)
fseek(fid, 'bof', 220);
Answers (1)
Voss
on 15 Feb 2022
I think you've got the second and third inputs to fseek() swapped around. It should be fseek(fileID,offset,origin), so for instance:
fseek(fid, 220, 'bof');
See Also
Categories
Find more on Low-Level File I/O in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!