# MATLAB: How to find the indices of a data column that aren’t Nan, and how to use those indices to concatenate a vector

concatenate vectorsfind indices

My code is using importdata to import the data columns from excel files. I have a bunch of data files that I have a for loop going through and I am trying to make contiuous vectors of all the data from all the files. In the data files, Mx, My, Mz and Temp are somethimes empty and I want to make those vectors without the nans that will appear where there is nothing in the data file.
The second line of the first peice of code I have written is what I have guessed is a way to find the postions where there arent nans and then use that indice in the line that concatenates the Mx vector (I assumed I would have to do this for Mx, My, Mz and Temp individually and I havent written those there), but this function won't produce outputs for each line that isnt a nan, I always get an error that says there are to many output arguments. Is there a way to do this using this function or should I try something else?
``     elseif size(A.data,2) == 15         [~,i] = not(isnan(A.data(:,12)));         Time = [Time;(A.data(:,1) + mtimeStart*24*60*60)];         Ax = [Ax;A.data(:,2)];         Ay = [Ay;A.data(:,3)];           Az = [Az;A.data(:,4)];         Mx = [Mx;A.data(i,12)];         My = [My;A.data(:,13)];         Mz = [Mz;A.data(:,14)];         Temp = [Temp;A.data(:,15)];         TimeMag = [TimeMag;(A.data(:,1) + mtimeStart*24*60*60)];         TimeTemperature = [TimeTemperature;(A.data(:,1) + mtimeStart*24*60*60)];                           %% full code                   N = length(fns);Time=[];Ax=[];Ay=[];Az=[];Mx=[];My=[];Mz=[];Temp=[];TimeMag=[];TimeTemperature=[];times=[];temperatureTimes=[];magTimes=[];for kk = 1:1:N     fn = fns(kk).name;       A = importdata([dn,fn]);       %find time stamps   start_time = A.textdata(3,1);   str = char(start_time);   S = strfind(str,' '); %finds the spaces   DateandTime = extractAfter(str,S(1));   DT = datetime(DateandTime,'InputFormat','yyyy-MM-dd,HH:mm:ss.SSS');   startTime = timeofday(DT);   mtimeStart = datenum(DT);        if size(A.data,2) == 11         Time = [Time;(A.data(:,1) + mtimeStart*24*60*60)];         Ax = [Ax;A.data(:,2)];         Ay = [Ay;A.data(:,3)];           Az = [Az;A.data(:,4)];          for ii = 1:1:size(A.data,1)                             numNan(ii) = sum(isnan(A.data(ii,:)));                    % if nans in row then it is slow magnetometer data               if sum(isnan(A.data(ii,:))) == 7 %Mx, My, Mz, Temp                  Mx = [Mx;A.data(ii,1)];                  My = [My;A.data(ii,2)];                  Mz = [Mz;A.data(ii,3)];                  Temp = [Temp;A.data(ii,4)];                  TimeMag = [TimeMag;(A.data(ii-1,1) + mtimeStart*24*60*60)];                  TimeTemperature = [TimeTemperature;(A.data(ii-1,1) + mtimeStart*24*60*60)];               elseif sum(isnan(A.data(ii,:))) == 8 %Mx, My, Mz                  Mx = [Mx;A.data(ii,1)];                  My = [My;A.data(ii,2)];                  Mz = [Mz;A.data(ii,3)];                  TimeMag = [TimeMag;(A.data(ii-1,1) + mtimeStart*24*60*60)];                    end              end % ii                elseif size(A.data,2) == 15         Time = [Time;(A.data(:,1) + mtimeStart*24*60*60)];         Ax = [Ax;A.data(:,2)];         Ay = [Ay;A.data(:,3)];           Az = [Az;A.data(:,4)];         Mx = [Mx;A.data(:,12)];         My = [My;A.data(:,13)];         Mz = [Mz;A.data(:,14)];         Temp = [Temp;A.data(:,15)];         TimeMag = [TimeMag;(A.data(:,1) + mtimeStart*24*60*60)];         TimeTemperature = [TimeTemperature;(A.data(:,1) + mtimeStart*24*60*60)];     elseif size(A.data,2) == 14         Time = [Time;(A.data(:,1) + mtimeStart*24*60*60)];         Ax = [Ax;A.data(:,2)];         Ay = [Ay;A.data(:,3)];           Az = [Az;A.data(:,4)];         Mx = [Mx;A.data(:,12)];         My = [My;A.data(:,13)];         Mz = [Mz;A.data(:,14)];         TimeMag = [TimeMag;(A.data(:,1) + mtimeStart*24*60*60)];             for ii = 1:1:size(A.data,1)                numNan(ii) = sum(isnan(A.data(ii,:)));                   if sum(isnan(A.data(ii,:))) == 13 %T                  Temp = [Temp;A.data(ii,1)];                  TimeTemperature = [TimeTemperature;(A.data(ii-1,1) + mtimeStart*24*60*60)];                    end                           end % ii                  else         %display error message         disp(['Uh-oh  ',num2str(kk),' ', fn])             end %dealing with width differences in data   end %kk``