% Loads a beamlet batch into a cell array of sparse matrices function beamlets = open_beamlet_batch(batchname) fid = fopen(batchname,'rb'); Nbeamlets = fread(fid,1,'int'); % number of beamlets in this file beamlets = cell(1,Nbeamlets); for k=1:Nbeamlets beamlets{k}.num = fread(fid,1,'int'); beamlets{k}.x_count = fread(fid,1,'int'); beamlets{k}.y_count = fread(fid,1,'int'); beamlets{k}.z_count = fread(fid,1,'int'); Nind = fread(fid,1,'int'); % number of non-zero values beamlets{k}.non_zero_indices = fread(fid,Nind,'int=>int'); beamlets{k}.non_zero_values = fread(fid,Nind,'float=>float'); % add unity to the indices to convert them from C to Matlab style % indexing: beamlets{k}.non_zero_indices = beamlets{k}.non_zero_indices + 1; disp(int2str(k)); end fclose(fid);