我有以下数据样本
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
我希望只有2-4秒的时间范围内的数据。
我可以做到这一点没问题Extracted_Time_Data = Data_Times(Data_Times>2 & Data_Times<4);
但是我只有时间而不是伴随(在这种情况下)速度值。我知道我可以使用像
这样的东西Extracted_Speed_Data = Data(2:5,2);
然后我可以使用它来制作矩阵
End_Goal = [Extracted_Time_Data,Extracted_Speed_Data]
然而,我已回答了我自己的问题,但如果我使用了包含数百行数据的其他数据集,该怎么办?我仍然希望数据在相同的时间范围2-4 seconds
,但我希望MATLAB能够自动存储速度及其伴随时间。
我希望这个问题足够清楚,先谢谢你给予的任何帮助。
答案 0 :(得分:3)
逻辑索引将会这样做。
(Data_Times(:,1)>2 & Data_Times(:,1)<4
将选择行。然后,您只需使用:
运算符选择所有列。
rows = Data_Times(:,1)>2 & Data_Times(:,1)<4;
Data_Times(rows,:);
或
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