Home > SRC > read_params_simul_experi.m

read_params_simul_experi

PURPOSE ^

read experiment parameters

SYNOPSIS ^

function [experiment,experiment_hadc,experiment_btpde]= read_params_simul_experi(fname_experiment)

DESCRIPTION ^

 read experiment parameters
 
 Input:
         fname_experiment
             
 Output:
 
     1. experiment is a structure with 6 elements:
         ngdir_total 
         gdir        
         sdeltavec   
         bdeltavec    
         seqvec       
         npervec      
         
     2. experiment_hadc is a structure with 8 elements:
         ngdir_total 
         gdir         
         sdeltavec    
         bdeltavec    
         seqvec       
         npervec     
         rtol        
         atol        
 
     3. experiment_btpde is a structure with 10 elements:
         ngdir_total 
         gdir         
         sdeltavec    
         bdeltavec    
         seqvec       
         npervec     
         rtol        
         atol        
         qvalues     
         bvalues

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [experiment,experiment_hadc,experiment_btpde] ...
0002     = read_params_simul_experi(fname_experiment)
0003 
0004 % read experiment parameters
0005 %
0006 % Input:
0007 %         fname_experiment
0008 %
0009 % Output:
0010 %
0011 %     1. experiment is a structure with 6 elements:
0012 %         ngdir_total
0013 %         gdir
0014 %         sdeltavec
0015 %         bdeltavec
0016 %         seqvec
0017 %         npervec
0018 %
0019 %     2. experiment_hadc is a structure with 8 elements:
0020 %         ngdir_total
0021 %         gdir
0022 %         sdeltavec
0023 %         bdeltavec
0024 %         seqvec
0025 %         npervec
0026 %         rtol
0027 %         atol
0028 %
0029 %     3. experiment_btpde is a structure with 10 elements:
0030 %         ngdir_total
0031 %         gdir
0032 %         sdeltavec
0033 %         bdeltavec
0034 %         seqvec
0035 %         npervec
0036 %         rtol
0037 %         atol
0038 %         qvalues
0039 %         bvalues
0040 
0041 SEQ_DEFINITIONS
0042 global QVAL
0043 global BVAL
0044 global BDELTA SDELTA SEQ OGSEPER 
0045 
0046 ndim = 3;
0047 clear bvec;
0048 
0049 fid=fopen(fname_experiment);
0050 
0051 tline = fgetl(fid);
0052 experiment.ngdir_total= sscanf(tline,'%f',1);
0053 
0054 tline = fgetl(fid);
0055 experiment.gdir= sscanf(tline,'%f',ndim);
0056 experiment.gdir = experiment.gdir/norm(experiment.gdir);
0057 
0058 tline = fgetl(fid);
0059 nd= sscanf(tline,'%f',1);
0060 
0061 tline = fgetl(fid);
0062 experiment.sdeltavec= sscanf(tline,'%f',nd);
0063 
0064 tline = fgetl(fid);
0065 experiment.bdeltavec= sscanf(tline,'%f',nd);
0066 
0067 tline = fgetl(fid);
0068 experiment.seqvec= sscanf(tline,'%f',nd);
0069 tline = fgetl(fid);
0070 experiment.npervec= sscanf(tline,'%f',nd);
0071 
0072 tline = fgetl(fid);
0073 do_hadc = sscanf(tline,'%f',1);
0074 tline = fgetl(fid);
0075 atmp= sscanf(tline,'%f',2);
0076 if (do_hadc ~= 0)
0077     experiment_hadc = experiment;
0078     experiment_hadc.rtol= atmp(1);
0079     experiment_hadc.atol = atmp(2);
0080 else
0081     experiment_hadc = [];
0082 end
0083 
0084 tline = fgetl(fid);
0085 do_btpde = sscanf(tline,'%f',1);
0086 tline = fgetl(fid);
0087 atmp= sscanf(tline,'%f',2);
0088 
0089 if (do_btpde ~= 0)
0090     experiment_btpde = experiment;
0091     experiment_btpde.rtol = atmp(1);
0092     experiment_btpde.atol = atmp(2);
0093     tline = fgetl(fid);
0094     nb = sscanf(tline,'%f',1);
0095 
0096     tline = fgetl(fid);
0097     use_blimits= sscanf(tline,'%f',1);
0098 
0099     tline = fgetl(fid);
0100     const_q = sscanf(tline,'%f',1);
0101 
0102     if (use_blimits == 0)
0103         tline = fgetl(fid);
0104         bvec= sscanf(tline,'%f',nb);
0105         qvec = [];
0106     elseif (use_blimits == 1)
0107         tline = fgetl(fid);
0108         blimits = sscanf(tline,'%f',2);
0109         bvec = linspace(blimits(1),blimits(2),nb);
0110         qvec = [];
0111     elseif (use_blimits == 2)
0112         tline = fgetl(fid);
0113         glimits = sscanf(tline,'%f',2);
0114         qvec = linspace(glimits(1),glimits(2),nb);
0115         bvec = [];
0116     end    
0117 else
0118     experiment_btpde = [];
0119 end
0120 
0121 fclose(fid);
0122 
0123 if (do_btpde ~= 0)
0124     nb = max(length(qvec),length(bvec));
0125     nexperi = length(experiment_btpde.sdeltavec);
0126 
0127     experiment_btpde.qvalues = zeros(nexperi,nb);
0128     experiment_btpde.bvalues = zeros(nexperi,nb);
0129 
0130     for iexperi = 1:nexperi
0131         SDELTA = experiment_btpde.sdeltavec(iexperi);
0132         BDELTA = experiment_btpde.bdeltavec(iexperi);
0133         TE = SDELTA+BDELTA;
0134         SEQ = experiment_btpde.seqvec(iexperi); % for choosing case PGSE, OGSEcos or OGSEsin
0135         omega = 2*pi*experiment_btpde.npervec(iexperi)/SDELTA;
0136         OGSEPER = 1./omega*2*pi;%% set up number for OGSE
0137         
0138         for ib = 1:nb
0139             if (length(bvec) == 0)
0140                 experiment_btpde.qvalues(iexperi,ib) = qvec(ib);
0141                 QVAL = experiment_btpde.qvalues(iexperi,ib);
0142                 
0143                 experiment_btpde.bvalues(iexperi,ib) = seqbvaluenoq*experiment_btpde.qvalues(iexperi,ib)^2;
0144             else
0145                 if (iexperi == 1 | const_q ~= 1)
0146                     experiment_btpde.bvalues(iexperi,ib) = bvec(ib);
0147                     BVAL = experiment_btpde.bvalues(iexperi,ib);
0148                     experiment_btpde.qvalues(iexperi,ib)  = sqrt(experiment_btpde.bvalues(iexperi,ib)/seqbvaluenoq); % water proton gyromagnetic ratio* norm of g
0149                 else
0150                     experiment_btpde.qvalues(iexperi,ib) = experiment_btpde.qvalues(1,ib);
0151                     QVAL = experiment_btpde.qvalues(iexperi,ib);
0152                     experiment_btpde.bvalues(iexperi,ib) = seqbvaluenoq*experiment_btpde.qvalues(iexperi,ib)^2;
0153                 end
0154             end
0155         end
0156     end
0157 end
0158 
0159

Generated on Mon 28-Jan-2019 12:43:57 by m2html © 2005