| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | function save_beamspec_batch(batch,batch_folder,batch_file_name)% Saves a beamspec batch to batch_folder/batch_filename. The batch is a% cell array of beam structures.%% Each beam structure has the following fields:% beam = % %        num: 1%      y_vec: [86.6025 50.0000 0]%        SAD: 100%         ip: [0.5000 -0.8660 0]%         jp: [0 0 1]%         kp: [-0.8660 -0.5000 0]%         xp: 0.5000%         yp: 0%     del_yp: 1%     del_xp: 2warning off MATLAB:MKDIR:DirectoryExistsmkdir(batch_folder);N = prod(size(batch));  % number of beamspecs in the batchfid = fopen([batch_folder '/' batch_file_name],'w');fprintf(fid,'beamnum:\n %g\n\n',N);  % write the total number of beams that are in this batchfor k=1:N    % save each beam structure    beam = batch{k};        % current beam structure    fprintf(fid,'num\n');    fprintf(fid,'%g\n',double(beam.num));    fprintf(fid,'SAD xp yp del_xp del_yp\n');    fprintf(fid,'%4.20E %4.20E %4.20E %4.20E %4.20E\n',double(beam.SAD),double(beam.xp),double(beam.yp),double(beam.del_xp),double(beam.del_yp));    fprintf(fid,'y_vec\n');    fprintf(fid,'%4.20E %4.20E %4.20E\n',double(beam.y_vec(1)),double(beam.y_vec(2)),double(beam.y_vec(3)));    fprintf(fid,'ip\n');    fprintf(fid,'%4.20E %4.20E %4.20E\n',double(beam.ip(1)),double(beam.ip(2)),double(beam.ip(3)));    fprintf(fid,'jp\n');    fprintf(fid,'%4.20E %4.20E %4.20E\n',double(beam.jp(1)),double(beam.jp(2)),double(beam.jp(3)));    fprintf(fid,'kp\n');    fprintf(fid,'%4.20E %4.20E %4.20E\n\n',double(beam.kp(1)),double(beam.kp(2)),double(beam.kp(3)));endfclose(fid);
 |