How to extract data from two separate tabs
Mostra commenti meno recenti
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??
Risposte (1)
Matt Gaidica
il 22 Gen 2021
0 voti
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 Commenti
Sam
il 22 Gen 2021
Matt Gaidica
il 22 Gen 2021
Modificato: Matt Gaidica
il 22 Gen 2021
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
il 22 Gen 2021
Modificato: Matt Gaidica
il 22 Gen 2021
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.
Categorie
Scopri di più su Matrix Indexing in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!