| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | function save_kernels(Kernels,kernel_folder)% saves the Kernels in their matlab format to files that are readable by a% C-version of the convolution code.  The results are all saved in binary% files so for easy readin.  Since there are so many files that will be% created the option of changing the filenames from outside the function% was not included.warning off MATLAB:MKDIR:DirectoryExists% The kernels have the following structure:% Kernels = % %                radii: [1x24 float]%               angles: [1x48 float]%             energies: [1x14 float]%              primary: [24x48x14 float]%        first_scatter: [24x48x14 float]%       second_scatter: [24x48x14 float]%     multiple_scatter: [24x48x14 float]%           brem_annih: [24x48x14 float]%                total: [24x48x14 float]%           mean_radii: [24x48x14 float]%          mean_angles: [24x48x14 float]%            helpfield: [21x72 char]            % not saved%              fluence: [1x14 float]%                   mu: [1x14 float]%                mu_en: [1x14 float]mkdir(kernel_folder);% kernel filenames:kernel_header = 'kernel_header.txt';  % header file for the kernelskernel_radii = 'radii.bin';kernel_angles = 'angles.bin';kernel_energies = 'energies.bin';kernel_primary = 'primary.bin';kernel_first_scatter = 'first_scatter.bin';kernel_second_scatter = 'second_scatter.bin';kernel_multiple_scatter = 'multiple_scatter.bin';kernel_brem_annih = 'brem_annih.bin';kernel_total = 'total.bin';kernel_fluence = 'fluence.bin';kernel_mu = 'mu.bin';kernel_mu_en = 'mu_en.bin';[Nradii,Nangles,Nenergies] = size(Kernels.total);% create the header filefid = fopen([kernel_folder '/' kernel_header],'w');fprintf(fid,'Nradii Nangles Nenergies\n');fprintf(fid,'%g %g %g\n',Nradii,Nangles,Nenergies);fclose(fid);% start saving the rest of the datafid = fopen([kernel_folder '/' kernel_radii],'wb');fwrite(fid,Kernels.radii,'float');fclose(fid);fid = fopen([kernel_folder '/' kernel_angles],'wb');fwrite(fid,Kernels.angles,'float');fclose(fid);fid = fopen([kernel_folder '/' kernel_energies],'wb');fwrite(fid,Kernels.energies,'float');fclose(fid);fid = fopen([kernel_folder '/' kernel_primary],'wb');fwrite(fid,Kernels.primary,'float');fclose(fid);fid = fopen([kernel_folder '/' kernel_first_scatter],'wb');fwrite(fid,Kernels.first_scatter,'float');fclose(fid);fid = fopen([kernel_folder '/' kernel_second_scatter],'wb');fwrite(fid,Kernels.second_scatter,'float');fclose(fid);fid = fopen([kernel_folder '/' kernel_multiple_scatter],'wb');fwrite(fid,Kernels.multiple_scatter,'float');fclose(fid);fid = fopen([kernel_folder '/' kernel_brem_annih],'wb');fwrite(fid,Kernels.brem_annih,'float');fclose(fid);fid = fopen([kernel_folder '/' kernel_total],'wb');fwrite(fid,Kernels.total,'float');fclose(fid);fid = fopen([kernel_folder '/' kernel_fluence],'wb');fwrite(fid,Kernels.fluence,'float');fclose(fid);fid = fopen([kernel_folder '/' kernel_mu],'wb');fwrite(fid,Kernels.mu,'float');fclose(fid);fid = fopen([kernel_folder '/' kernel_mu_en],'wb');fwrite(fid,Kernels.mu_en,'float');fclose(fid);
 |