title: Splitting arrays in matlab
body: <p>Greetings All</p>
  
  <p>I'm trying to 
  1)split an array into multiple parts 
  2)export each part to separate wave files
  3)re-import wav files and join them together to make sure 
  the array data that was split up wasn't altered.</p>
  
  <p>I can do all of these steps the problem is when I test for
  error I expect it should be something like 2.232e-15 which
  is almost no error however I get unexpected large numbers
  for error.<br>
  MAE =  0.046232
  MXE =  0.14522
  RMSE =  0.064035</p>
  
  <p>How can I fix this so the error rate goes down?
  I thought the array was being split in sections and the cell data was being copied
  exactly but it's looking like that may not be the case,
  how can I fix this?</p>
  
  <p>Code below:</p>
  
  <pre><code>%split_file
  %create sine wave signal
  clear all, clc
  tic
  fs = 44100;                   % Sampling frequency
  t=linspace(0,1,fs);
  freq=340;
  ya = sin(2*pi*freq*t); %+ 1*sin(2*pi*250*t); 
  [size_r,size_c]=size(ya');
  
  jj=[];
  kk=0;
  wavefilesplit=[];
  
  %need to delete diretory and recreate it to clean out files
  fileprepathStr='/home/rat/Documents/octave/pre/'; %
  rmdir(fileprepathStr,'s');
  fprintf('\n-1- deleting %s directory %2.4f sec',fileprepathStr,toc);
  mkdir(fileprepathStr);
  fprintf('\n-1- creating %s directory %2.4f sec',fileprepathStr,toc);
  
  
  jj=1;
  for ii=1:fs/4:size_r,  %build array of desired ranges or fs/2
      jj(end+1,:)=ii-1;  %minus 1 to get correct array index in cell
  end;
  
  [size_rjj,size_cjj]=size(jj); %used to get size of jj array
  jj(end+1,:)=size_r-(size_rjj-2); %adds the end of the sound file to the end of the jj array minus the amount of files joined
  
  jj(2,:)=[]; %deletes second cell with zero and shifts the cells up
  
  for ii=1:1:size_rjj-1,kk=kk+1;
  
      wavefilesplit=ya(jj(kk):jj(kk+1));
      wavefn=strcat('wavefn_',num2str(kk,'%04d')); %build filename dynamiclly with 4 leading zeros
      wavwrite([wavefilesplit],fs,16,strcat('/home/rat/Documents/octave/pre/',wavefn,'.wav')); 
      fprintf('\n-1- wavwrite split %s.wav %3.0f of %3.0f %6.3fsec  %6.3fmins\n',wavefn,kk,size_rjj-1,toc,toc/60);
  end; 
  fprintf('\n-2- Elapsed time in seconds after wavwrite split %6.3fsec  %6.3fmins\n',toc,toc/60);
  
  %rejoin to check if arrays are the same
  y2=[]; %
  yb2=[];
  filepathprocStr='/home/rat/Documents/octave/pre/';
  files2=strcat(filepathprocStr,'*.wav');
  files2=dir(files2);
  [rwsz_files2,clsz_files2]=size(files2); %used to get ro and col size
  for i=1:numel(files2) 
      [yb2, fs2, nbits] = wavread(strcat(filepathprocStr,files2(i).name));
      yb2=yb2';
      y2=[y2;yb2];    %Append files2
      fprintf('\n %4.0f of %4.0f joined %s',i,rwsz_files2,files2(i).name) 
  end;
  wavwrite([y2],fs2,16,'/home/rat/Documents/octave/pre/All_joined.2wav')
  
  fprintf(' \n Done!!!\n');
  ya=ya';
  dy   = abs(ya-y2);           % absolute error
  MAE  = mean(dy)               % 7.2292e-015   mean-absolute-error
  MXE  = max(dy)                 % 3.4195e-014   maximum-absolute-error
  RMSE = sqrt(mean(dy.^2))  % 9.5049e-015   root-mean-sqare-error  
  </code></pre>