User Tools

Site Tools


mfiles:mfiles

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
mfiles:mfiles [2010/05/05 10:47] lennartfrmfiles:mfiles [2010/12/13 15:34] (current) lennartfr
Line 1: Line 1:
 ====== Matlab / Octave Utilities ====== ====== Matlab / Octave Utilities ======
 +
 +This page list the various Matlab and octave utilities which interact with ADMB, typically generating input for and interpreting output from ADMB. It is meant to be as complete as possible. This means that it is likely to contain many non-essential files as well as the essential files, for defining and running data sets.
 +
 +====== Files written spring 2010 ======
  
 Here various .m-files which interact with ADMB will be listed. Here various .m-files which interact with ADMB will be listed.
Line 18: Line 22:
  
 % Enter the proper directory % Enter the proper directory
-cd ~lennartfr/common_files/mfiles+%cd ~lennartfr/common_files/mfiles
  
 % Define data files % Define data files
Line 41: Line 45:
  
 % Run ADMB % Run ADMB
-unix('./cod');+unix('unset LD_LIBRARY_PATH; ./cod');
  
 % Return to mfile directory and plot % Return to mfile directory and plot
Line 61: Line 65:
  
 % Enter the proper directory % Enter the proper directory
-cd ~lennartfr/common_files/mfiles+cd ~lennartfr/common_files/mfiles
  
 % Define parameters for data generation % Define parameters for data generation
Line 88: Line 92:
  
 % Run ADMB % Run ADMB
-unix('./cod');+unix('unset LD_LIBRARY_PATH; ./cod');
  
 % Return to mfile directory and plot % Return to mfile directory and plot
Line 139: Line 143:
 ==== datpar2plot.m ==== ==== datpar2plot.m ====
 <file txt datpar2plot.m> <file txt datpar2plot.m>
 +function datpar2plot(filename,new_figure);
 % datpar2plot(filename,make_new_figure) % datpar2plot(filename,make_new_figure)
 % %
Line 161: Line 166:
 %who('std_*'); %who('std_*');
 extractstd; extractstd;
 +
 %whos('std_*') %whos('std_*')
 std_coeff = 1.96; std_coeff = 1.96;
  
 % Get first year from dat file.  % Get first year from dat file. 
 +[filename '.dat']
 [m,startyears,endyearsy,C,num_surveys,survey] = read_dat([filename '.dat']); [m,startyears,endyearsy,C,num_surveys,survey] = read_dat([filename '.dat']);
 firstyear = startyears(1); firstyear = startyears(1);
Line 192: Line 198:
   plot(firstyear+(i-1):firstyear+(i-1) + (width-1) - (i-1),N(i,1: width - (i-1)),colors{i});   plot(firstyear+(i-1):firstyear+(i-1) + (width-1) - (i-1),N(i,1: width - (i-1)),colors{i});
   try,   try,
-    errorbar(firstyear+(i-1),N(i,1),std_coeff * std_N0(i,2),colors{i});+    %errorbar(firstyear+(i-1),N(i,1),std_coeff * std_N0(i,2),colors{i});
     %     %
-    % ERRORBAR doesn't quite work in octave, code below makes our own bar +    % ERRORBAR doesn't quite work in octave, so make our own bar 
-    %plot([ firstyear+(i-1) ; firstyear+(i-1)],[N(i,1) - std_coeff * std_N0(i,2); N(i,1) + std_coeff * std_N0(i,2)], [colors{i} styles{2}]);+    plot([ firstyear+(i-1) ; firstyear+(i-1)],[N(i,1) - std_coeff * std_N0(i,2); N(i,1) + std_coeff * std_N0(i,2)], [colors{i} styles{1}]);
  
   catch,   catch,
-    %fprintf(2,'Errorbar plot failed for cohort born in %4i -- wrong variable name?\n',firstyear+(i-1));i+    %fprintf(2,'Errorbar plot failed for cohort born in %4i -- wrong variable name?\n',firstyear+(i-1));
     %disp(lasterr);     %disp(lasterr);
     errorbar(firstyear+(i-1),N(i,1),std_coeff * std_N0(i,2));     errorbar(firstyear+(i-1),N(i,1),std_coeff * std_N0(i,2));
Line 213: Line 219:
   if (exist('q_alpha','var')),   if (exist('q_alpha','var')),
     q_sigmoid = q0 * ((exp(q_alpha*survey(i,2)+q_beta))/(1+exp(q_alpha*survey(i,2)+q_beta)));     q_sigmoid = q0 * ((exp(q_alpha*survey(i,2)+q_beta))/(1+exp(q_alpha*survey(i,2)+q_beta)));
 +    
     plot(startyears(survey(i,1))+survey(i,2), ...     plot(startyears(survey(i,1))+survey(i,2), ...
         (1/N0scale)*survey(i,4)/q_sigmoid, ...         (1/N0scale)*survey(i,4)/q_sigmoid, ...
Line 227: Line 233:
  
   else,   else,
-    plot(startyears(survey(i,1))+survey(i,2),(1/N0scale)*survey(i,4)/q(survey(i,3)), ... +    plot(startyears(survey(i,1))+survey(i,2),(1/N0scale)*survey(i,4)/q(survey(i,3)),[colors{survey(i,1)} dotstyles{survey(i,3)}]); 
-         [colors{survey(i,1)} dotstyles{survey(i,3)}]);+
   end;   end;
- 
  
 end; end;
Line 238: Line 242:
 ylabel('Volume in billions'); ylabel('Volume in billions');
  
-curr_axis = axis; +%curr_axis = axis; 
-axis([curr_axis(1) curr_axis(2) 0 2500/N0scale curr_axis(5) curr_axis(6)]);+%try, 
 +%  axis([curr_axis(1) curr_axis(2) 0 2500/N0scale curr_axis(5) curr_axis(6)])
 +%catch, 
 +%  axis([curr_axis(1) curr_axis(2) 0 2500/N0scale]); 
 +%end;
 hold off; hold off;
 +
 +% If q is a sigmoid function, plot this function
 +if (exist('q_alpha','var')),
 +
 +sf = figure;
 +xx = 0:1:20;
 +yy = q0 * (exp(q_alpha*xx+q_beta)./(1+exp(q_alpha*xx+q_beta)));
 +plot(xx,yy);
 +title('Sigmoid function q0 * exp(q_a x + q_b)/(1+exp(q_a x + q_b))');
 +xlabel('Age');
 +ylabel('Catchability');
 +
 +end;
 +
 +
 return; return;
  
Line 315: Line 338:
   % Send the variable name and values to the command line   % Send the variable name and values to the command line
   eval(sprintf('%s = [ %s ];',varname,l));   eval(sprintf('%s = [ %s ];',varname,l));
 +  %sprintf('%s = [ %s ];',varname,l)
 end; end;
  
Line 335: Line 358:
  
   output = fgetl(fid);   output = fgetl(fid);
-  N_cell{i} = str2double(output);  +  N_cell{i} = str2num(output);  
   max_width_so_far = max(max_width_so_far,length(N_cell{i}));   max_width_so_far = max(max_width_so_far,length(N_cell{i}));
  
Line 769: Line 792:
  
  l = fgetl(fid);  l = fgetl(fid);
- candidate_number = str2double(l);+ 
 + candidate_number = str2num(l);
    
  if (~isempty(candidate_number) & isfinite(norm(candidate_number)) ),  if (~isempty(candidate_number) & isfinite(norm(candidate_number)) ),
Line 817: Line 841:
  
 end; end;
 +%fprintf(1,'Reading finished!\n');
 fclose(fid); fclose(fid);
 </file> </file>
Line 1086: Line 1110:
   fclose(fid);   fclose(fid);
 end; end;
 +</file>
 +
 +====== Files written autumn 2010 ======
 +
 +==== table2allCohortsModel.m ====
 +
 +<file txt table2allCohortsModel.m>
 +function table2allCohortsModel(startyear, endyear, minage, maxage, catchfile, ...
 +     surveyfile, datfile, include_weight_maturity);
 +% table2allCohortsModel(startyear, endyear, minage, maxage, catchfile, surveyfile, datfile, include_weight_and_maturity);
 +
 +
 +fid = fopen(datfile,'w');
 +
 +try,
 +  fprintf(fid,'# Auto-generated datfile\n\n');
 +
 +  fprintf(fid,'# Startyear\n%i\n\n# Endyear\n%i\n\n',startyear,endyear);
 +
 +  fprintf(fid,'# Min age\n%i\n\n# Max age\n%i\n\n',minage,maxage);
 +
 +  fprintf(fid,'# Catch\n');
 +
 +  C = load(catchfile);
 +
 +  startyear_row = find(C(:,1) == startyear);
 +  endyear_row = find(C(:,1) == endyear);
 +  
 +  minage_col = find(C(1,:) == minage);
 +  maxage_col = find(C(1,:) == maxage);
 +  
 +  for (i=startyear_row:endyear_row),
 +    for (j=minage_col:maxage_col),
 +      fprintf(fid,'%10.6f ',C(i,j));
 +    end;
 +    fprintf(fid,'\n');
 +  end;
 +  
 +  
 +  fprintf(fid,'# Survey data\n');
 +  S = load(surveyfile);
 +  
 +  startyear_row = find(S(:,1) == startyear);
 +  endyear_row = find(S(:,1) == endyear);
 +  
 +  minage_col = find(S(1,:) == minage);
 +  maxage_col = find(S(1,:) == maxage);
 +  
 +  for (i=startyear_row:endyear_row),
 +    for (j=minage_col:maxage_col),
 +      fprintf(fid,'%10.6f ',S(i,j));
 +    end;
 +    fprintf(fid,'\n');
 +  end;
 +  
 +  if (exist('include_weight_maturity','var') && include_weight_maturity == 1),
 +    
 +    mature_3_12_2009;
 +    weight_3_11_2009;
 +    mature = mature';
 +    weight = weight';
 +    
 +    fprintf(fid,'# Proportion mature at age\n');
 +    startyear_row = find(mature(:,1) == startyear);
 +    endyear_row = find(mature(:,1) == endyear);
 +    
 +    minage_col = find(mature(1,:) == minage);
 +    maxage_col = find(mature(1,:) == maxage);
 +    
 +    for (i=startyear_row:endyear_row),
 +      for (j=minage_col:maxage_col),
 + fprintf(fid,'%10.6f ',mature(i,j));
 +      end;
 +      fprintf(fid,'\n');
 +    end;
 +    
 +    
 +    
 +    fprintf(fid,'# Weight at age\n');
 +    startyear_row = find(weight(:,1) == startyear);
 +    endyear_row = find(weight(:,1) == endyear);
 +    
 +    minage_col = find(weight(1,:) == minage);
 +    maxage_col = find(weight(1,:) == maxage);
 +    
 +    for (i=startyear_row:endyear_row),
 +      for (j=minage_col:maxage_col),
 + fprintf(fid,'%10.6f ',weight(i,j));
 +      end;
 +      fprintf(fid,'\n');
 +    end;
 +    
 +    get_sondre_data;
 +    csd = [nan sondre_ages; sondre_years' sondre_sigma];
 +    
 +    fprintf(fid,'# Catch standard deviations\n');
 +    startyear_row = find(csd(:,1) == startyear);
 +    endyear_row = find(csd(:,1) == endyear);
 +    
 +    minage_col = find(csd(1,:) == minage);
 +    maxage_col = find(csd(1,:) == maxage);
 +    
 +    for (i=startyear_row:endyear_row),
 +      for (j=minage_col:maxage_col),
 + fprintf(fid,'%10.6f ',csd(i,j));
 +      end;
 +      fprintf(fid,'\n');
 +    end;
 +    
 +    
 +  end;
 +  
 +  
 +  fclose(fid);
 +
 +catch,
 +  fprintf(2,'%s\n',lasterr);
 +  fclose(fid);
 +end;
 +
 +
 </file> </file>
mfiles/mfiles.1273056450.txt.gz · Last modified: 2010/05/05 10:47 by lennartfr