Get every first value above a treshold out of an array

1 Ansicht (letzte 30 Tage)
Mike Mierlo van
Mike Mierlo van am 8 Dez. 2019
Kommentiert: Mike Mierlo van am 9 Dez. 2019
Hi guys, Lets say I have an array with elements with
A = [1 2 3 4 5 6 2 3 4 5 6 3 4 5 6 7 8 1 2 1 2 1 2 3 4 5 6]
Now I want to have only the first values that are above the treshold 4.5 when reading from left to right. So reading from left to right when an element is lower than 4.5 it is a 0, when it is higher than 4.5, only the first element is a 1. When the next element is also higher than 4.5 it should be a zero. Only when the value of an element drops below 4.5 the next element above 4.5 should again be a one.
The result should be:
B = [0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0]
Please help me with the magic between A and B.
  2 Kommentare
Image Analyst
Image Analyst am 8 Dez. 2019
Is this homework (it looks like it)?
Mike Mierlo van
Mike Mierlo van am 9 Dez. 2019
Hi. It is not homework. It is a simplified array. The actual array contains measurements of degradation of a component. This fails at a certain treshold. After that a new component is build in. The acutal array is way to big to share here, so I asked the question with a simplified code. I am going to try to fix it with the hints. If not, I'll be back.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

dpb
dpb am 8 Dez. 2019
Bearbeitet: dpb am 9 Dez. 2019
B=([0 diff((A>trsh)-1)]==1);
For comparison,
>> [A;B]
ans =
Columns 1 through 27
1 2 3 4 5 6 2 3 4 5 6 3 4 5 6 7 8 1 2 1 2 1 2 3 4 5 6
0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
>>

Weitere Antworten (1)

Image Analyst
Image Analyst am 8 Dez. 2019
Looks like homework so we're only giving hints. Hint:
da = [0, diff(A > 4.5)]
and then look up strfind() and zeros() to help you get the answer in the final 3 lines of code.
  1 Kommentar
dpb
dpb am 8 Dez. 2019
"...so we're only giving hints."
Oh, I didn't see this in time...sorry! :)

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by