我有以下数据样本
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 秒
,但我希望 MATLAB 自动存储速度及其伴随时间。
我希望问题足够清楚,在此先感谢您提供的任何帮助。
最佳答案
逻辑索引就可以了。
(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
关于MATLAB根据第1列条件维护2列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36305997/