MATLAB根据第1列条件维护2列

MATLAB Maintaining 2 columns based on column 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

我只想有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 自动存储速度及其伴随时间。

我希望问题足够清楚,在此先感谢您提供的任何帮助。

逻辑索引就可以了。

(Data_Times(:,1)>2 & Data_Times(:,1)<4 将 select 行。然后你只需 select 所有带有 : 运算符的列。

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