Find values of vector that fall within multiple ranges

Hello, I’m somewhat new to MATLAB, and impressed with how many features it has available. But I’m now stuck and couldn’t find a code sample that worked/helped. I believe the answer is likely trivial, but having trouble putting it together.

Problem: I have a signal with a large number of peaks, however an number of them are just “noise”. There are certain criteria for identifying these peaks, e.g. amplitude, threshold, etc.

% locations of all, indiscriminate peaks
locs(1:3) = [0.1740 2.7050 3.4340]
% Peaks amplitude/size at set locations
pks(1:3) = [3.5 4.2 8.9]

There is an additional criteria, that the peaks fall within certain ranges or windows of time. These selected windows are based on the value of another signal.

% These bounding vectors all fit within the time series of the peaks above
% May be a different number of "windows" than the peak location vector
lower_bounds(1:5) = [1.9930 2.8470 3.6940 4.5320 5.3670]
upper_bounds(1:5) = [2.6930 3.5470 4.3940 5.2320 6.0670]

Each peak is only considered to be True if it falls within these bounds. For this trivial example, only locs(3) falls within an acceptable range. The actual vectors are of course much longer. I can’t figure out how to do this in a practical sense. I’d like the output to be a new vector of locations that meet the windows criteria. I’d then like to use these new locations to identify which peaks are to be selected. This last step I imagine is likely a combination of vector indexing, which I can probalby figure out. Any help would be appreciated. I’ve already tried for loops (but got lost in the vector storage and space allocation issues), as well as bounding the location vector between the two bounding vectors (however the sizes aren’t the same, so there becomes an issue).

ANSWER:

Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

loc_is_in_range = any(locs >= lower_bounds(:) & locs <= upper_bounds(:));

This depends upon locs being a row vector (not a column vector). This code should be usable from R2016b onwards; for earlier releases it would have to be modified.

--

--

--

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Best solutions for Microsoft interview tasks. Pattern Recognition.

What Happens When the URL Is Entered in the Address Box until the Browser Displays It?

Execute Multiple Actions in A Ternary Block

5 Mistakes I did as an Android Developer, but you should not

Learning Programming at the Absolutely Slowest Pace

So you didn’t land a summer software engineering internship…Now what?

The Product Owner’s Vital Role in the Retrospective

A Picture is Worth 1,500 Words, Recursivity

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Technical Source

Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

More from Medium

From math hater to Data Scientist, how?

2020_02_Hypothesis_Testing

Engineering a Minion Army to prevent the moon from being stolen with Maximum Likelihood Estimation

Hidden Markov Models with Python