2016-03-30 15 views
3

Ich habe die folgende BeispieldatenMATLAB pflegen 2 Spalten basierend auf Spalte 1 Bedingungen

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 

Ich will nur die Daten im Zeitbereich von 2-4 Sekunden haben. Ich kann das kein Problem mit

Aber ich werde nur die Zeiten haben und nicht die begleitenden (in diesem Fall) Geschwindigkeit Wert. Ich weiß, dass ich so etwas wie

Extracted_Speed_Data = Data(2:5,2); 

verwenden könnte, die konnte ich dann eine Matrix

End_Goal = [Extracted_Time_Data,Extracted_Speed_Data] 

machen verwenden Und ich habe meine eigene Frage aber beantwortet was ist, wenn ich weitere Daten verwendet gesetzt mit Hunderten von Zeilen Daten. Ich möchte immer noch die Daten im gleichen Zeitraum 2-4 seconds, aber ich möchte MATLAB die Geschwindigkeit automatisch mit der zugehörigen Zeit speichern.

Ich hoffe, die Frage ist klar genug, danke im Voraus für jede Hilfe gegeben.

Antwort

3

Logische Indizierung wird es tun.

(Data_Times(:,1)>2 & Data_Times(:,1)<4 wird die Zeilen auswählen. Dann wählen Sie einfach alle Spalten mit dem Operator : aus.

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

oder

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 
Verwandte Themen