function [lat,lon,d,an,mn,sd,se,oa,ma,ng,nn] = read_csv_write_mat(input_dir,filename,output_dir); % Read CSV files where the input arguments are strings: % variable - field to use, ex: % 't' for temperature, % 's' for salinity, % 'o' for oxygen % time - 01 to 12 for monthly % 00 for annual % 13 to 16 for seasonal % 13 for winter (Jan-Mar), % 14 for spring (Apr-Jun), % 15 for summer (Jul-Sep), % 16 for autumn (Oct-Dec) % depth - '01' to '33' standard levels % res - '1d' for 1 degree, '5d' for 5 degrees % input_dir = '/home/eleanor/data/woa05/csv/'; % filename = [variable,'_',time,'_',depth,'_',res]; % read the file, skipping 14 lines of header % (starting at row 14, col 0) where the first data entry is at row 0, col 0 mydata = csvread([input_dir,filename,'.csv'],14,0); [N C] = size(mydata); lat = sort(unique(mydata(:,1))); % latitude grid lon = sort(unique(mydata(:,2))); % longitude grid d = mydata(1,3); % depth LT = length(lat); LN = length(lon); an = zeros(LN,LT); % objectively analyzed mean mn = an; % statitistically analyzed mean sd = an; % standard deviation of stat mean se = an; % standard error of stat mean oa = an; % an - mn ma = an; % an - annual average ng = an; % number of grids with statistical means within radius of influence, nn = an; % number of data used to calculate statistical mean for n=1:N % Find lat/lon indices ilat = find(lat==mydata(n,1)); ilon = find(lon==mydata(n,2)); an(ilon,ilat) = mydata(n,4); mn(ilon,ilat) = mydata(n,5); sd(ilon,ilat) = mydata(n,6); se(ilon,ilat) = mydata(n,7); oa(ilon,ilat) = mydata(n,8); ma(ilon,ilat) = mydata(n,9); ng(ilon,ilat) = mydata(n,10); nn(ilon,ilat) = mydata(n,11); end eval(['save ',output_dir,filename,'.mat lat lon d an mn sd se oa ma ng nn']);