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 kernels
- kernel_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 file
- fid = 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 data
- fid = 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);
|