Sorting data in one column based on the time stamps in the alternate column
    4 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Krispy Scripts
 le 17 Oct 2016
  
    
    
    
    
    Commenté : Walter Roberson
      
      
 le 18 Oct 2016
            In one matrix, one column has data and the column next to it has time stamps. I have another matrix where the first column is start times and the second column is stop times of the interval. I would like to get the data from the first matrix based on the intervals of the second matrix, where the intervals correspond to the time stamps in the first matrix second column. I would like to output the data into a matrix, where the interval data is in individual columns in that matrix.
Does this make sense? I have attached example matrices. So from the first column dataset.mat, I want the data set that corresponds to the interval.mat (3 intervals) and output them into three different columns corresponding to each interval.
0 commentaires
Réponse acceptée
  Walter Roberson
      
      
 le 17 Oct 2016
        selected = arrayfun(@(ROW) dataset(dataset(:,2) >= intervals(ROW,1) & dataset(:,2) <= intervals(ROW,2), 1), 1:size(intervals,1), 'Uniform', 0);
if all(diff(cellfun(@length, selected)) == 0)
  selected = horzcat( selected{:} );
else
  fprintf('the intervals select different number of rows, had to leave selected as a cell array\n');
end
5 commentaires
  Walter Roberson
      
      
 le 18 Oct 2016
				I would need to recheck the code for the case where there was only one interval
Okay I checked and the code will work for that case.
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

