2016-03-30 4 views
3

Je l'exemple suivant des données2 colonnes Matlab maintien basée sur la colonne 1 conditions

Time(s) Speed(m/s) 
1.2   7 
2.5   4.2 
2.6   8 
3.1   12 
3.6   3.2 
3.9   9.1 
4.3   1.6 
4.6   3.8 

Je veux avoir les données que dans l'intervalle de temps de 2-4 secondes. Je peux le faire aucun problème avec

Extracted_Time_Data = Data_Times(Data_Times>2 & Data_Times<4); 

Cependant, je n'aurai le temps et non la valeur de la vitesse d'accompagnement (dans ce cas). Je sais que je pourrais utiliser quelque chose comme

Extracted_Speed_Data = Data(2:5,2); 

que je pourrais ensuite utiliser pour faire une matrice

End_Goal = [Extracted_Time_Data,Extracted_Speed_Data] 

Et j'ai répondu à ma propre question, mais si je autre ensemble de données avec des centaines de lignes de Les données. Je veux toujours les données dans la même plage de temps 2-4 seconds mais je veux que MATLAB stocke automatiquement la vitesse avec son temps d'accompagnement.

J'espère que la question est assez claire, merci d'avance pour toute aide donnée.

Répondre

3

L'indexation logique va le faire.

(Data_Times(:,1)>2 & Data_Times(:,1)<4 sélectionne les lignes. Ensuite, il vous suffit de sélectionner toutes les colonnes avec l'opérateur :.

rows = Data_Times(:,1)>2 & Data_Times(:,1)<4; 
Data_Times(rows,:); 

ou

Data_Times((Data_Times(:,1)>2 & Data_Times(:,1)<4),:) 

ans = 

2.5000 4.2000 
2.6000 8.0000 
3.1000 12.0000 
3.6000 3.2000 
3.9000 9.1000