我有一系列的数据集的每一个约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]
这个输出告诉我从中行到这个事件,我感兴趣的是发生哪一行。因此,我希望手动键入time(1)
,time(5)
,time(84)
得到从第1行的值的序列到行5,从行84至90,从111到112,从251至252,等等。我能做到这一点,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
您可以发布您的代码到目前为止(或至少它的相关部分) – am304 2013-05-08 12:41:05
'时间(结束时间) - ?时间(开始时间)' – Dan 2013-05-08 13:49:38