get specific range of data from vector, indicated by other vector
    7 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Marilena Wilding
 am 16 Mär. 2021
  
    
    
    
    
    Kommentiert: Marilena Wilding
 am 16 Mär. 2021
            I have a big datafile, containing several columns of data (data.d). I  need the data of the second column of data --> data.d(:, 2). The  first column of this file indicates the corresponding timestamps (i.e.  it says when the event of column two happened). Column two, however, is  huge and I only need a certain range numbers of it: i.e. I have an index list with timestamps (index) from another file which indicates, at what timepoint a button was pressed, so which range I need - from this  timestamp, I need to infer into data.d(:, 2) and go back 6000ms and get  all datapoints from -6000 to my original index from data.d (:, 2). Every row represents 2 ms, that's why I wrote -3000. Currently I am getting  the range of numbers between data.d(i,2) minus 3000 until data.d(i, 2)  in equal steps, which is not what I need at all. I need the values of my original data in data.d(:, 2). The second thing I am not sure about is how I can get not just the first range of elements (so the first range of -6000ms to 0) but all ranges  of these 5 indeces in 'index' in one vector. Thank you all very much in  advance!!
index = [13500, 14628, 18500, 20788, 24567]
for i = 1:length(data.d(:, 2))
    if ismember(i, index)
    loc_list = (data.d(i-3000,2) : data.d(i,2))'
    end
end 
0 Kommentare
Akzeptierte Antwort
  Stephen23
      
      
 am 16 Mär. 2021
        
      Bearbeitet: Stephen23
      
      
 am 16 Mär. 2021
  
      X = [13500, 14628, 18500, 20788, 24567];
N = numel(X);
C = cell(1,N);
for k = 1:N
    Y = (X(k)-3000):X(k);
    C{k} = data.d(Y);
end
V = vertcat(C{:}) % or HORZCAT
Or
F = @(x)data.d((x-3000):x);
C = arrayfun(F, X, 'Uni',0);
V = vertcat(C{:}) % or HORZCAT
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

