How to extract data from two separate tabs
显示 更早的评论
I have heart rate and time in two columns. I am going to filter heart rates above 95 bpm. However, in another two columns I have certain "events" that occurred throughout the recording and the times the events occurred. The time of the events don't necessarily match up with the time of the heart rates I want to extract. Tips on creating a script to filter out the heart rates above 95 along with the event that precedes the high heart rate??
回答(1 个)
Matt Gaidica
2021-1-22
0 个投票
The easiest way to think about this would be using a simple series find statements and the returned indexes to do time comparisons, as well as pull event type.
Post a sample of your actual data, I can imagine some caveats and best practices depending on how it's formatted.
4 个评论
Sam
2021-1-22
Matt Gaidica
2021-1-22
编辑:Matt Gaidica
2021-1-22
I think either attaching the spreadsheet or getting it into MATLAB is a good start—you can use readtable. I'm happy to illustrate some code if you attach your spreadsheet (I work in physiology as well!).
Matt Gaidica
2021-1-22
编辑:Matt Gaidica
2021-1-22
Sure thing. Try this:
hrIds = find(Data{:,'Heart Rate'} > 95);
hrTimes = Data{hrIds,'Heart Rate Times'};
eventCodes = NaN(1,numel(hrTimes));
for ii = 1:numel(hrTimes)
precTimeId = find(Data{:,'Event Times'} < hrTimes(ii),1,'last');
if ~isempty(precTimeId)
eventCodes(ii) = Data{precTimeId,'Event Code'};
end
end
You have some heart rate times that come before the first event, so those are left as NaN.
类别
在 帮助中心 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!