2016-03-30 2 views
3

У меня есть следующий образец данныхMATLAB Поддержание 2 колонки на основе столбцов 1 условий

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 автоматически сохранил скорость сопутствующего времени.

Надеюсь, вопрос достаточно ясен, заранее за любую помощь.

ответ

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 
Смежные вопросы