Reading a binary data file
이전 댓글 표시
Hello,
I am trying to import and read a binary data file of the following format in MATLAB. I need to read in all the data, however at this point im just trying to read in the first 4 char, but i keep getting a blank array. Nothing seems to be working and I have been stuck for days.
Thanks in advance for your help!

fid = fopen('file.dat','r');
if fid <0
error('error opening file %s\n file.dat')
end
Program_label = fread(fid,[1 4],*char)
fclose(fid);
m = memmapfile('GSS1_t023_is_phcorr_ideal.dat');
m.Format
답변 (1개)
Jan
2019년 6월 7일
fid = fopen('file.dat','r');
if fid <0
error('error opening file %s\n file.dat')
end
Program_label = fread(fid, [1 4], '*char'); % With quotes
Program_version = fread(fid, 1, 'single');
Type_label = fread(fid, [1 4], '*char');
nCols = fread(fid, 1, 'uint32');
nRows = fread(fid, 1, 'uint32');
...
fclose(fid);
댓글 수: 8
KatherineS
2019년 6월 8일
Please explain exactly, what you are doing. How do you obatin the "[]"? "The output for the values shows..." is not clear enough to understand this. Program_label is read as char vector, such that it is unlikely, that the empty matrix [] is shown anywhere. Therefore I assume, that your method to display the contents of the variables is flawed, or that the file really contains '[] ' as first 4 characters.
KatherineS
2019년 6월 8일
Walter Roberson
2019년 6월 8일
Please show us
double(Program_label)
I suspect that it contains unprintable characters, such as binary 0.
the first characters in the file should be imageLayerStack (abcdef1 v 1.14)
That disagrees with the layout you provided, which says that there should be 4 characters followed by a single precision float
Jan
2019년 6월 8일
Show us:
fid = fopen('file.dat','r');
if fid <0
error('error opening file %s\n file.dat')
end
data = fread(fid, [1 16], '*uint8')
fclose(fid)
KatherineS
2019년 6월 8일
Walter Roberson
2019년 6월 8일
The file is empty.
Walter Roberson
2019년 6월 8일
dinfo = dir('file.dat')
and look at the bytes information. I think it will show 0
카테고리
도움말 센터 및 File Exchange에서 Large Files and Big Data에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

