2013-05-08 2 views
0

У меня есть набор наборов данных, каждый из которых содержит около 1032 x 4. С программой у меня теперь есть время, в которое происходит определенное событие (я сделал это, хотя структуры). И выход я получаю:извлекать данные из определенных строк Matlab

startTime: [1 84 111 251 450 482 613 660 787 951 956] 
endTime: [5 90 112 252 451 485 619 661 788 952 961] 

Этот вывод говорит мне, из какой строки, к которой строка это событие, что я заинтересован в происходящем. Поэтому я хочу получить последовательность значений из строки 1 в строку 5, начиная с строк 84 до 90, от 111 до 112, от 251 до 252 и т. Д. Я могу сделать это вручную, набрав time(1), time(5), time(84), time(90), чтобы я может рассчитать продолжительность событий. Но есть ли способ сделать это автоматически?

Помогите пожалуйста! Это звучит легко, но это сводит меня с ума.

Спасибо заранее,

код у меня до сих пор является:

function DetectEvent = DetectEvent(inputData, ColumnNumbers) 
%ColumnNumbers = 1 contains Time 
%ColumnNumbers = 2 contains Position 
%ColumnNumbers =3 contains velocity 
%ColumnNumbers=4 contains accelereation 

eventNow = false; 
event.startTime = []; % initialise 
event.endTime = []; % initialise 
for i = 1: length(inputData) 
if abs(inputData(i,ColumnNumbers.velocity)) == 0 
    if ~eventNow 
     eventNow = true; 
     thisevent.startTime = i; 
    end 
else 
    if eventNow 
     eventNow = false; 
     thisevent.endTime = i - 1; 
     event.startTime = [event.startTime, thisevent.startTime]; 
     event.endTime = [event.endTime, thisevent.endTime]; 
    end 
end 
end 
+0

вы можете разместить свой код до сих пор (или, по крайней мере соответствующая часть) – am304

+0

'времени (Конечное время) -.? время (начальное время)' – Dan

ответ

0

Вы можете использовать startTime и endTime как индексы в сочетании с colon operator (:).

Например, чтобы получить события, записанные на I (например, началось в startTime(i) и закончилась в endTime(i) вы можете использовать (предполагается, что 1032x4 матрица называется data):

events=data(startTime(i):endTime(i),:); 

Это поместит в events все строки от startTime(i) к endTime(i) в data матрице

+0

Любой флористика? ездить?? Я не знаю, что я делаю неправильно, но это не работает для меня ... – Flowers

Смежные вопросы