analyze Consecutive points in an array

1 Ansicht (letzte 30 Tage)
ALDO
ALDO am 28 Mai 2019
Bearbeitet: ALDO am 31 Mai 2019
I have an array with following values. I would like to look at 5 consecutive points and see if they meet the following critria and return an logical array. if the criteria is met we get 1 and if not 0.
Data values example:
x=0.045135 -0.03538 0.010979 -0.01464 0.050014 0.563576 1.471152 1.451634 (the actual array is has 20000 elemets).
Criteria:
The point I am looking at is Pi, I would like it to meet thsese citeria Pi>=0.2 P(i+1)>=0.2 P(i+2)>=0.2 P(i-1)<0.2 P(i-2)<0.2
Thank you for your help!
for i=1:lenght(x)
if x(i)>=0.2 && x(i+1)>=0.2 && x(i+2)>=0.2 && x(i-1)<0.2 && x(i-2)<0.2
w(i)=1
else
w(i)=0
end
end

Akzeptierte Antwort

Jos (10584)
Jos (10584) am 28 Mai 2019
Bearbeitet: Jos (10584) am 29 Mai 2019
Let x be your vector.
MyFun = @(i) x(i)>=0.2 && x(i+1)>=0.2 && x(i+2)>=0.2 && x(i-1)<0.2 && x(i-2)<0.2
% MyFun(k) will return true or false by looking at the 5 points surrounding point k
RESULT = false(size(x))
ix = 3:numel(x)-2 % skip first and last elements (default to false)
RESULT(ix) = MyFun(ix)
  1 Kommentar
ALDO
ALDO am 31 Mai 2019
Bearbeitet: ALDO am 31 Mai 2019
Thank you for your answer! It worked perfectly!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Resizing and Reshaping Matrices 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