Finding Patterns in Array

11 Ansichten (letzte 30 Tage)
Connor O'Higgins
Connor O'Higgins am 26 Jan. 2018
Kommentiert: Connor O'Higgins am 29 Jan. 2018
Hi, I am currently using the 'findpattern' function (which can be found here ) to find patterns in temperature data.
e.g. find the index when temperature was at 10 degrees for 2 hours. in this case my pattern would be [10 10 10 10 ...] and findpattern.m would find the index in the start value. My temperature data was taken every 5 min which dictates the length of the pattern.
I would like to have a range of temperatures instead of 1 value i.e. find the locations when temperature was anywhere between 9 and 11 degrees for 2 hours.
  2 Kommentare
Stephen23
Stephen23 am 26 Jan. 2018
@Connor O'Higgins: what is your question?
Connor O'Higgins
Connor O'Higgins am 26 Jan. 2018
Sorry, that wasn't well explained
I need to find the locations in my temperature data where the temperature has been steady for several hours.
However, this temperature should be in a range i.e. 9 to 11 degrees.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Guillaume
Guillaume am 26 Jan. 2018
%T: temperature vector
%desiredduration: number of samples where temperature must be between 9 and 11
inrange = T>=9 & T<= 11;
transitions = diff([false; inrange; false]); %find where the temperature change between in range/not in range occur
inrangestarts = find(transitions == 1);
inrangeends = find(transitions == -1);
inrangeduration = inrangeends - inrangestarts; %may be off by 1. Check
locs = inrangestarts(inrangeduration > desiredduration)
  1 Kommentar
Connor O'Higgins
Connor O'Higgins am 29 Jan. 2018
Thanks Guillaume, That does the job. The 'inrangeduration' did need a +1 like you said.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Image Analyst
Image Analyst am 26 Jan. 2018
Attach your data or image. If you have a known pattern you're looking for, rather than trying to guess at patterns and finding some pattern that might be repeated somewhere, then you can use normxcorr2(). A demo is attached.

Kategorien

Mehr zu Elementary Math finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by