%% Read Header Data
% Read the header data from a binary file using the readHeader function.
% Write a header, followed by the data to a binary file named myfile.dat. The header is a 1-by-4 matrix of double precision values, followed by a 5-by-1 vector of single-precision values. The data is a sequence of 1000 double-precision values.

fid = fopen('myfile.dat','w');
fwrite(fid,[1 2 3 4],'double');
fwrite(fid,single((1:5).'),'single');
fwrite(fid,(1:1000).','double');
fclose(fid);

%
% Read the header using a dsp.BinaryFileReader object. Specify the expected header structure. This structure specifies only the format of the expected binary file header and does not contain the exact values.

reader = dsp.BinaryFileReader('myfile.dat');
s = struct('A',zeros(1,4),'B',ones(5,1,'single'));
reader.HeaderStructure = s;

%
% Read the header using the readHeader function.

H = readHeader(reader);
fprintf('H.A: ')
fprintf('%d ',H.A);
fprintf('\nH.A datatype: %s\n',class(H.A))
fprintf('H.B: ')
fprintf('%d ',H.B);
fprintf('\nH.B datatype: %s\n',class(H.B))

% Copyright 2012 The MathWorks, Inc.