function [m,sy,ey,C,ns,I] = read_dat(filename); % [num_cohorts,start_years,end_years,catch,num_surveys,survey_indices] = read_dat(filename); % % Reads the ADMB data file filename ( = e.g. 'cod.dat'); % and returns the data as output variables. % % Written by Lennart Frimannslund, April 2010. fid = fopen(filename,'r'); l = 0; m_done =0; sy_done = 0; ey_done = 0; C_done = 0; ns_done = 0; nsi_done = 0; I_done = 0; I_counter = 1; while (l~= -1), l = fgetl(fid); candidate_number = str2num(l); if (~isempty(candidate_number) & isfinite(norm(candidate_number)) ), if (m_done == 0), m = candidate_number; m_done = 1; elseif (sy_done == 0), sy = candidate_number; sy_done = 1; elseif (ey_done == 0), ey = candidate_number; ey_done = 1; elseif (C_done == 0), C = [candidate_number; zeros(m-1,length(candidate_number))]; for (i = 2:m), l = fgetl(fid); candidate_number = str2double(l); C(i,1:length(candidate_number)) = candidate_number; end; C_done = 1; elseif (ns_done == 0), ns = candidate_number; ns_done = 1; elseif (nsi_done == 0), num_survey_indices = candidate_number; if (num_survey_indices == 0), I = []; break; else, I = zeros(candidate_number,4); nsi_done = 1; end; elseif (I_done == 0), I(I_counter,:) = candidate_number; if (I_counter == size(I,1)), break; else, I_counter = I_counter + 1; end; end; end; if (isempty(l)), l = 0; end; end; %fprintf(1,'Reading finished!\n'); fclose(fid);