<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki-pnb.eri.ucsb.edu/index.php?action=history&amp;feed=atom&amp;title=Merge_ctdac9_v2.m</id>
	<title>Merge ctdac9 v2.m - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-pnb.eri.ucsb.edu/index.php?action=history&amp;feed=atom&amp;title=Merge_ctdac9_v2.m"/>
	<link rel="alternate" type="text/html" href="https://wiki-pnb.eri.ucsb.edu/index.php?title=Merge_ctdac9_v2.m&amp;action=history"/>
	<updated>2026-04-16T16:57:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://wiki-pnb.eri.ucsb.edu/index.php?title=Merge_ctdac9_v2.m&amp;diff=206&amp;oldid=prev</id>
		<title>128.111.101.185 at 23:34, 5 August 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki-pnb.eri.ucsb.edu/index.php?title=Merge_ctdac9_v2.m&amp;diff=206&amp;oldid=prev"/>
		<updated>2010-08-05T23:34:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 23:34, 5 August 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l379&quot; &gt;Line 379:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 379:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;return&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;return&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;big&amp;gt;[[merge_ctdac9_v2]]&amp;lt;big&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>128.111.101.185</name></author>
		
	</entry>
	<entry>
		<id>https://wiki-pnb.eri.ucsb.edu/index.php?title=Merge_ctdac9_v2.m&amp;diff=205&amp;oldid=prev</id>
		<title>128.111.101.185: Created page with '&lt;pre&gt; % MERGE_ctdac9.M % DEC 97, JUL 98, 9/99 % John Ubante, SRW % Input:	none % Look for:	upused.txt, for pairing of ctd and ac9 files; %               LIST/list_ac9merge_ctd % …'</title>
		<link rel="alternate" type="text/html" href="https://wiki-pnb.eri.ucsb.edu/index.php?title=Merge_ctdac9_v2.m&amp;diff=205&amp;oldid=prev"/>
		<updated>2010-08-05T23:31:05Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&amp;lt;pre&amp;gt; % MERGE_ctdac9.M % DEC 97, JUL 98, 9/99 % John Ubante, SRW % Input:	none % Look for:	upused.txt, for pairing of ctd and ac9 files; %               LIST/list_ac9merge_ctd % …&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
% MERGE_ctdac9.M&lt;br /&gt;
% DEC 97, JUL 98, 9/99&lt;br /&gt;
% John Ubante, SRW&lt;br /&gt;
% Input:	none&lt;br /&gt;
% Look for:	upused.txt, for pairing of ctd and ac9 files;&lt;br /&gt;
%               LIST/list_ac9merge_ctd&lt;br /&gt;
% Output: 	$ctd$ac9.strip&lt;br /&gt;
% Assumptions:	1) This function called from directory with data,&lt;br /&gt;
%		2) The strip lists located in &lt;br /&gt;
%                  /home/scratch51/bbop/WORK/LIST/,&lt;br /&gt;
%		3) ac9file have just left sac9proc and begin with &amp;quot;m&amp;quot;&lt;br /&gt;
%		4) ac9files have 'core' name beginning with the&lt;br /&gt;
%                  first 'z'&lt;br /&gt;
%               4) ctdfiles are flat files that are already &amp;quot;stripped&amp;quot;&lt;br /&gt;
%		5) ctdfiles have 'core' name beginning withb the&lt;br /&gt;
%                  first 'X'&lt;br /&gt;
% Purpose:	Merge ac9 and ctd datasets and create a strip-&lt;br /&gt;
%		like file that contains the columns listed in &lt;br /&gt;
%               [list_ac9merge_ctd; list_ac9merge_ac9]&lt;br /&gt;
% Calls:	ctd2strip,merge_2files&lt;br /&gt;
% Maintain: 	{filename, columnarraylist, disp_text}&lt;br /&gt;
% Uses:     	PnB ac9 processing&lt;br /&gt;
% Example:  	merge_ctdac9&lt;br /&gt;
% Notes:        Based on merge_merac9 as written for bbop ac9 processing&lt;br /&gt;
%Edited by Erik S. 6/7/2010 ' % % %' are altered areas&lt;br /&gt;
function merge_ctdac9(pb)&lt;br /&gt;
&lt;br /&gt;
                                        % initialize local variables&lt;br /&gt;
if findstr(computer,'PCWIN')&lt;br /&gt;
  LIST='z:\links\WORK\LIST';&lt;br /&gt;
else&lt;br /&gt;
    LIST = '/home/eriks/LIST/';&lt;br /&gt;
    %LIST='/home/data241/bbop/RADIOMETRY/ARCHIVE_lcd/LIST/';&lt;br /&gt;
end&lt;br /&gt;
list_ctdac9=[];&lt;br /&gt;
list_ac9merge_ac9 = 'list_ac9merge_ac9';&lt;br /&gt;
HERE=pwd;&lt;br /&gt;
check=[];&lt;br /&gt;
&lt;br /&gt;
                                        % check for list files&lt;br /&gt;
cd ../..                                        % in $WORK/LIST &lt;br /&gt;
eval([ 'cd ' LIST ]);&lt;br /&gt;
[s,m]=unix([ 'ls ' list_ac9merge_ac9] );&lt;br /&gt;
if s&lt;br /&gt;
 sprintf('Check your %s in %s.',list_ac9merge_ac9,LIST)&lt;br /&gt;
 return&lt;br /&gt;
end&lt;br /&gt;
eval([ 'cd ' HERE ])&lt;br /&gt;
clear HERE&lt;br /&gt;
                                        % copy strip lists HERE&lt;br /&gt;
                                        % if not already HERE&lt;br /&gt;
[s,m]=unix([ 'ls ' list_ac9merge_ac9 ]);&lt;br /&gt;
if size(m,2)~=size(list_ac9merge_ac9,2)+1 &lt;br /&gt;
 eval([ '!cp ' LIST list_ac9merge_ac9 ' .' ]);   &lt;br /&gt;
end&lt;br /&gt;
clear s m LIST&lt;br /&gt;
&lt;br /&gt;
                                        %load list file&lt;br /&gt;
name_list=list_load('upused.txt',[ 1:6 ],{'dum','dum','list_ac9bmdz', ...&lt;br /&gt;
		    'dum','dum','list_ctd'});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% $$$                                         % check for upused.txt in pwd&lt;br /&gt;
% $$$ [s,m]=unix('ls upused.txt');&lt;br /&gt;
% $$$ if isempty(m)&lt;br /&gt;
% $$$  msg=sprintf('Check your upused.txt.');&lt;br /&gt;
% $$$  disp(msg)&lt;br /&gt;
% $$$  return&lt;br /&gt;
% $$$ end&lt;br /&gt;
% $$$ clear s m&lt;br /&gt;
% $$$ &lt;br /&gt;
% $$$                                         % load upused.txt&lt;br /&gt;
% $$$ fid=fopen('upused.txt','r');&lt;br /&gt;
% $$$ while fid~=-1&lt;br /&gt;
% $$$   check=fgetl(fid);&lt;br /&gt;
% $$$   if check~=-1,&lt;br /&gt;
% $$$     if(check(1) ~= '#')&lt;br /&gt;
% $$$       list_ctdac9=[list_ctdac9; check];&lt;br /&gt;
% $$$     end &lt;br /&gt;
% $$$   else&lt;br /&gt;
% $$$     break;&lt;br /&gt;
% $$$   end&lt;br /&gt;
% $$$ end&lt;br /&gt;
% $$$ clear fid check&lt;br /&gt;
% $$$ &lt;br /&gt;
% $$$ &lt;br /&gt;
% $$$                                         % parse ctd &amp;amp; ac9 names&lt;br /&gt;
% $$$                                         % into lists&lt;br /&gt;
% $$$ for i=1:size(list_ctdac9,1),&lt;br /&gt;
% $$$   list_ac9(i,:)=parse(list_ctdac9(i,:),3);&lt;br /&gt;
% $$$   list_ctd(i,:)=parse(list_ctdac9(i,:),6);&lt;br /&gt;
% $$$ end&lt;br /&gt;
&lt;br /&gt;
                                        % check to see if lists&lt;br /&gt;
                                        % lengths are equal&lt;br /&gt;
if size(list_ctd,1)~=size(list_ac9bmdz,1)&lt;br /&gt;
 error('You do not have 1 to 1 correspondence in your list_ctdac9.')&lt;br /&gt;
end&lt;br /&gt;
ifread=ones(size(list_ctd,1),2);&lt;br /&gt;
                                        % check presence of ctd files&lt;br /&gt;
badfilectr=0;&lt;br /&gt;
for ifile=1:size(list_ctd,1)&lt;br /&gt;
 [s,m]=unix(['ls ',list_ctd(ifile,:)]);&lt;br /&gt;
 if s&lt;br /&gt;
  badfilectr=badfilectr+1;&lt;br /&gt;
  ifread(ifile,1)=0;&lt;br /&gt;
 end&lt;br /&gt;
end&lt;br /&gt;
clear ifile&lt;br /&gt;
if badfilectr&lt;br /&gt;
  list_ctd&lt;br /&gt;
  msg=sprintf('%ifile missing ctd file(s).',badfilectr);&lt;br /&gt;
  disp(msg)&lt;br /&gt;
  warning('Your ctdlist includes a file not in pwd.')&lt;br /&gt;
end&lt;br /&gt;
clear s m badfilectr msg&lt;br /&gt;
&lt;br /&gt;
                                        % check presence of ac9 files&lt;br /&gt;
badfilectr=0;&lt;br /&gt;
for ifile=1:size(list_ac9bmdz,1)&lt;br /&gt;
 [s,m]=unix(['ls ',list_ac9bmdz(ifile,:)]);&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 if s&lt;br /&gt;
  badfilectr=badfilectr+1;&lt;br /&gt;
  ifread(ifile,2)=0;&lt;br /&gt;
 end&lt;br /&gt;
end&lt;br /&gt;
clear ifile&lt;br /&gt;
if badfilectr&lt;br /&gt;
   &lt;br /&gt;
  list_ac9bmdz&lt;br /&gt;
  msg=sprintf('%ifile missing ac9 file(s).',badfilectr);&lt;br /&gt;
  disp(msg)&lt;br /&gt;
  warning('Your ac9list includes a file not in pwd.')&lt;br /&gt;
end&lt;br /&gt;
clear s m badfilectr msg&lt;br /&gt;
&lt;br /&gt;
                                        % loop through pairs&lt;br /&gt;
for i=find(all(ifread')),&lt;br /&gt;
  ctd_file=list_ctd(i,:);&lt;br /&gt;
  ac9_lcd=list_ac9bmdz(i,:);&lt;br /&gt;
                                        % create output name&lt;br /&gt;
  location1=find(ctd_file=='X');&lt;br /&gt;
  output=ctd_file(location1(1):location1(1)+7);&lt;br /&gt;
  output=[output '.' ctd_file(size(ctd_file,2))];&lt;br /&gt;
  location1=find(ac9_lcd=='z');&lt;br /&gt;
  location2=find(ac9_lcd=='.');&lt;br /&gt;
  output=[output '.' ac9_lcd(location1+2:location2-1) '.'];&lt;br /&gt;
  output=[output ac9_lcd(size(ac9_lcd,2)) '.strip']&lt;br /&gt;
  clear location1 location2&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  % strip em&lt;br /&gt;
  ctd_base=ctd_file(1:8)&lt;br /&gt;
  pb&lt;br /&gt;
  ctd2strip_v2(pb,ctd_base)% % %------------------------------------ mofified to have no ctd_head return ctd_head =&lt;br /&gt;
&lt;br /&gt;
% %   fid=fopen('ctd_head','w');%&lt;br /&gt;
% %   for j=1:size(ctd_head,1),&lt;br /&gt;
% %     fprintf(fid,'%s\n',ctd_head(j,:)');%&lt;br /&gt;
% %   end&lt;br /&gt;
  &lt;br /&gt;
 %fclose(fid);&lt;br /&gt;
  eval([ '!cat ctd_head_n &amp;gt; ' ctd_file '.strip']);&lt;br /&gt;
  eval([ '!cat ' ctd_file ' &amp;gt;&amp;gt; ' ctd_file '.strip']);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 % %eval([ '!cat ctd_head &amp;gt; ' ctd_file '.strip']);&lt;br /&gt;
 % %eval([ '!cat ' ctd_file ' &amp;gt;&amp;gt; ' ctd_file '.strip']);&lt;br /&gt;
&lt;br /&gt;
  %eval('!\rm ctd_head' );&lt;br /&gt;
  ctd_strip=[ctd_file '.strip']&lt;br /&gt;
  ac9_strip=[ac9_lcd '.strip'];&lt;br /&gt;
  &lt;br /&gt;
  %eval([ '!bbopstrip -f ' list_ac9merge_ac9 ' ' ac9_lcd ' ' ac9_strip ])&lt;br /&gt;
  %ac9_lcd&lt;br /&gt;
&lt;br /&gt;
  E_BBstrip(pb,ac9_lcd,list_ac9merge_ac9);&lt;br /&gt;
         ac9_strip = strcat(ac9_lcd,'.strip');%&lt;br /&gt;
         &lt;br /&gt;
  % call merge_2files&lt;br /&gt;
  msg=sprintf('Merging %s and %s into %s.',ctd_file,ac9_lcd,output);&lt;br /&gt;
&lt;br /&gt;
  disp(msg)%&lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
  [data,header]=merge_2files(ctd_strip,ac9_strip);&lt;br /&gt;
  &lt;br /&gt;
                                        % write merged stripfile to disk&lt;br /&gt;
  fid=fopen('merging_header.temp','w');&lt;br /&gt;
  for j=1:size(header,1)&lt;br /&gt;
    fprintf(fid,'%3s\n',header(j,:)');&lt;br /&gt;
  end&lt;br /&gt;
  fclose(fid);&lt;br /&gt;
  save merging_data.temp data -ascii&lt;br /&gt;
  eval([ '!cat merging_header.temp merging_data.temp &amp;gt; ' output ]);&lt;br /&gt;
  eval('!\rm merging_header.temp merging_data.temp');&lt;br /&gt;
  %clear output fid header data j&lt;br /&gt;
  &lt;br /&gt;
                                        % rm strip files&lt;br /&gt;
% eval([ '!rm ' ctd_strip ' ' ac9_strip ])&lt;br /&gt;
end  % end for loop					&lt;br /&gt;
clear i ctd2strip_v2 ac9_strip&lt;br /&gt;
&lt;br /&gt;
                                        % rm strip list files&lt;br /&gt;
% $$$ eval([ '!rm ' list_ac9merge_ac9 ' ' list_ac9merge_mer ]);&lt;br /&gt;
&lt;br /&gt;
% MERGE_2FILES.M&lt;br /&gt;
% NOV 97&lt;br /&gt;
% John Ubante&lt;br /&gt;
% Input:  	[mer,ac9]:string&lt;br /&gt;
% Output: 	[headAB:char array,fileAB:{200x(N1+N2-1)}]&lt;br /&gt;
% Assumptions:	errorflag=(-9.9e+35); depth will be the second column of mer&lt;br /&gt;
%		data and the first column of ac9 data&lt;br /&gt;
% Purpose:	to paste 2 strip-version files together using binned depths&lt;br /&gt;
%		as index; to place errorflag values at depths that don't exist&lt;br /&gt;
%		if there is an error with inputted files, program will return&lt;br /&gt;
%		to keyboard&lt;br /&gt;
% Calls:	read_strip, unique&lt;br /&gt;
% Uses:     	97 ac9 processing, esp. called from merge_merac9.m&lt;br /&gt;
%&lt;br /&gt;
% Example:	[data,header]=merge_2files('mer.strip','ac9.strip')&lt;br /&gt;
&lt;br /&gt;
% NOTES:	in script, &amp;quot;fileA&amp;quot; refers to SECOND parameter and &amp;quot;fileB&amp;quot;&lt;br /&gt;
%		refers to FIRST parameter;&lt;br /&gt;
&lt;br /&gt;
function [fileAB,headAB]=merge_2files(ctd,ac9);&lt;br /&gt;
&lt;br /&gt;
						% declare local variables&lt;br /&gt;
errorflag=-9.9e+35;&lt;br /&gt;
depthrange=[1:220]; % note that the 0m depth line is still added&lt;br /&gt;
fileAB=[];&lt;br /&gt;
headAB=['#filename ',ctd,' ',ac9];&lt;br /&gt;
&lt;br /&gt;
                                        % load stripped files&lt;br /&gt;
%eval(['[fileA,headA]=read_strip(ac9);'])&lt;br /&gt;
%eval(['[fileB,headB]=read_strip(ctd);'])&lt;br /&gt;
&lt;br /&gt;
eval(['[fileA,headA]=hdrload(ac9);']);&lt;br /&gt;
eval(['[fileB,headB]=hdrload(ctd);']);&lt;br /&gt;
clear ctd ac9&lt;br /&gt;
&lt;br /&gt;
%add depth column in 2 for ctd, will take out at the end&lt;br /&gt;
fileB=[fileB(:,1) fileB(:,3) fileB(:,2:size(fileB,2))];&lt;br /&gt;
&lt;br /&gt;
%zerodepth=fileB(1,:);&lt;br /&gt;
&lt;br /&gt;
                                        % remove lines with&lt;br /&gt;
                                      % errorflag for depth&lt;br /&gt;
indA=find(fileA(:,1)==errorflag);&lt;br /&gt;
fileA(indA,:)=[];&lt;br /&gt;
indB=find(fileB(:,2)==errorflag);&lt;br /&gt;
fileB(indB,:)=[];&lt;br /&gt;
clear indA indB&lt;br /&gt;
&lt;br /&gt;
                                        % ensure depths are&lt;br /&gt;
                                        % positive values&lt;br /&gt;
fileA(:,1)=abs(fileA(:,1));&lt;br /&gt;
fileB(:,2)=abs(fileB(:,2));&lt;br /&gt;
&lt;br /&gt;
                              % ensure depths are&lt;br /&gt;
                                        % integral  values&lt;br /&gt;
for i=1:size(fileB,1)&lt;br /&gt;
 if fileB(i,2)~=round(fileB(i,2))&lt;br /&gt;
    %fileB(i,2)&lt;br /&gt;
    %round(fileB(i,2))&lt;br /&gt;
 error('Depth is not integral in first parameter.  Try again.')&lt;br /&gt;
 end&lt;br /&gt;
end&lt;br /&gt;
for i=1:size(fileA,1)&lt;br /&gt;
 if fileA(i,1)~=round(fileA(i,1))&lt;br /&gt;
     fileA(i,1);&lt;br /&gt;
     &lt;br /&gt;
  error('Depth is not integral in second parameter.  Try again.')&lt;br /&gt;
 end&lt;br /&gt;
end&lt;br /&gt;
clear i&lt;br /&gt;
&lt;br /&gt;
                                        % remove depths outside of&lt;br /&gt;
                                       % depthrange&lt;br /&gt;
indA=find(fileA(:,1)&amp;lt;min(depthrange));&lt;br /&gt;
fileA(indA,:)=[];&lt;br /&gt;
indA=find(fileA(:,1)&amp;gt;max(depthrange));&lt;br /&gt;
fileA(indA,:)=[];&lt;br /&gt;
indB=find(fileB(:,2)&amp;lt;min(depthrange));&lt;br /&gt;
fileB(indB,:)=[];&lt;br /&gt;
indB=find(fileB(:,2)&amp;gt;max(depthrange));&lt;br /&gt;
fileB(indB,:)=[];&lt;br /&gt;
clear indA indB&lt;br /&gt;
&lt;br /&gt;
                                        % ensure depths are unique&lt;br /&gt;
if size(unique(fileA(:,1)),1)~=size(fileA,1)&lt;br /&gt;
 error('Depth is not unique in second parameter.  Try again.')&lt;br /&gt;
end&lt;br /&gt;
if size(unique(fileB(:,2)),1)~=size(fileB,1)&lt;br /&gt;
 error('Depth is not unique in first parameter.  Try again.')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
                                        % ensure depths are monotonic&lt;br /&gt;
 if sort(fileA(:,1))~=fileA(:,1)&lt;br /&gt;
   error('Depth is not monotonic in second parameter.  Try again.')&lt;br /&gt;
   keyboard&lt;br /&gt;
 end&lt;br /&gt;
if sort(fileB(:,2))~=fileB(:,2)&lt;br /&gt;
  error('Depth is not monotonic in first parameter.  Try again.')&lt;br /&gt;
  keyboard&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% $$$ 						% join using depths&lt;br /&gt;
% $$$ for i=depthrange&lt;br /&gt;
% $$$ 						%  fill in depth with errorflag if&lt;br /&gt;
% $$$ 						%   missing&lt;br /&gt;
% $$$  if size(fileB,1)&amp;lt;i&lt;br /&gt;
% $$$   fileB=[fileB;errorflag,i,ones(1,size(fileB,2)-2)*errorflag];&lt;br /&gt;
% $$$  elseif fileB(i,2)~=i&lt;br /&gt;
% $$$   fileB=[fileB(1:i,:);errorflag,i,ones(1,size(fileB,2)-2)*errorflag;fileB(i:size(fileB,1),:)];&lt;br /&gt;
% $$$  end&lt;br /&gt;
% $$$  if size(fileA,1)&amp;lt;i&lt;br /&gt;
% $$$   fileA=[fileA;i,ones(1,size(fileA,2)-1)*errorflag];&lt;br /&gt;
% $$$ elseif fileA(i,1)~=i&lt;br /&gt;
% $$$   fileA=[fileA(1:i,:);i,ones(1,size(fileA,2)-1)*errorflag;fileA(i:size(fileA,1),:)];&lt;br /&gt;
% $$$  end&lt;br /&gt;
% $$$ 						%  do IT&lt;br /&gt;
% $$$  fileAB(i,:)=[fileB(i,:),fileA(i,2:size(fileA,2))];&lt;br /&gt;
% $$$ &lt;br /&gt;
% $$$ end						% end for&lt;br /&gt;
&lt;br /&gt;
                                         % join using depths,&lt;br /&gt;
                                         % replaces section above&lt;br /&gt;
emask=ones(size(depthrange,2),size(fileB,2))*errorflag;&lt;br /&gt;
irow=find(fileB(:,2) &amp;gt;= depthrange(1,1) &amp;amp; fileB(:,2) &amp;lt;= ...&lt;br /&gt;
    depthrange(end));&lt;br /&gt;
if(isempty(irow));&lt;br /&gt;
  error('No data in depthrange 1')&lt;br /&gt;
end&lt;br /&gt;
for i = 1:size(irow,1);&lt;br /&gt;
  emask(fileB(irow(i,1),2),:) = fileB(irow(i,1),:);&lt;br /&gt;
end&lt;br /&gt;
fileB=emask;&lt;br /&gt;
clear emask irow&lt;br /&gt;
emask=ones(size(depthrange,2),size(fileA,2))*errorflag;&lt;br /&gt;
irow=find(fileA(:,1) &amp;gt; depthrange(1,1) &amp;amp; fileA(:,1) &amp;lt;= ...&lt;br /&gt;
    depthrange(size(depthrange,2)));&lt;br /&gt;
if(isempty(irow));&lt;br /&gt;
  error('No data in depthrange 2')&lt;br /&gt;
end&lt;br /&gt;
for i = 1:size(irow,1);&lt;br /&gt;
  emask(fileA(irow(i,1),1),:) = fileA(irow(i,1),:);&lt;br /&gt;
end&lt;br /&gt;
fileA=emask;&lt;br /&gt;
                                        %leaves out bin_1.0_depth&lt;br /&gt;
fileAB=[fileB,fileA(:,2:size(fileA,2))];&lt;br /&gt;
&lt;br /&gt;
% $$$                                         % add 0m depth&lt;br /&gt;
% $$$ zerodepth(1,size(fileB,2)+1:size(fileB,2)+size(fileA,2)-1)=errorflag;&lt;br /&gt;
% $$$ fileAB=[zerodepth; fileAB];&lt;br /&gt;
% $$$ clear fileA fileB i depthrange errorflag zerodepth&lt;br /&gt;
&lt;br /&gt;
                                        %remove extra depth channel&lt;br /&gt;
                                        %in col 2&lt;br /&gt;
fileAB(:,2)=[];&lt;br /&gt;
&lt;br /&gt;
headAB=char(headAB,headB(2:size(headB,1),:),headA(3:size(headA,1),:));&lt;br /&gt;
clear headA headB&lt;br /&gt;
&lt;br /&gt;
% $$$                                         % force headers' width = width&lt;br /&gt;
% $$$ width=size(headA(1,:),2)+size(headB(1,:),2);&lt;br /&gt;
% $$$ headA(:,width)=' ';&lt;br /&gt;
% $$$ headB(:,width)=' ';&lt;br /&gt;
% $$$ headAB(1,width)=' ';&lt;br /&gt;
&lt;br /&gt;
% $$$                                         % combine headers&lt;br /&gt;
% $$$ headAB=[headAB;headB(2:size(headB,1),:);headA(3:size(headA,1),:)];&lt;br /&gt;
% $$$ clear width headA headB&lt;br /&gt;
&lt;br /&gt;
return&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>128.111.101.185</name></author>
		
	</entry>
</feed>