Hello all,
I have an array with values that repeat , is it possible to determine the start and end points of a particular value in the array. For example
array = [10 10 10 30 30 30 30 30 4 4 4 4 4 30 30 30 30 30 30 2 2 2 2 2 30 30 30 30];
the goal is to extract those values in between the 30s.
How can i go about this? Thanks

4 Kommentare

What would be the intended output? Perhaps this?
new_array=[4 2];
You can probably use most of the RunLength function Jan published on the file exchange.
Daniel Adeniyi
Daniel Adeniyi am 9 Mär. 2022
let me check out the RunLength function. i want to use the indices of the start and end 30 to extract the values in between to a new array. Thanks
Rik
Rik am 9 Mär. 2022
If you want to extract the numbers, do you mean you want [4 2], or [4 4 4 4 4 2 2 2 2 2];? (or something else)
That is also probably important information if David's answer doesn't work for you.
Daniel Adeniyi
Daniel Adeniyi am 9 Mär. 2022
Yes you are right, I would want as output [4 4 4 4 4 2 2 2 2 2].

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Rik
Rik am 9 Mär. 2022

0 Stimmen

Using RunLength by Jan:
array = [10 10 10 30 30 30 30 30 4 4 4 4 4 30 30 30 30 30 30 2 2 2 2 2 30 30 30 30];
%first select only the parts between the first and last 30
new_array=array(find(array==30,1,'first'):find(array==30,1,'last'));
[B, N] = RunLength(new_array)
B = 1×5
30 4 30 2 30
N = 5×1
5 5 6 5 4
%remove the 30s
L=B==30;
B(L)=[];
N(L)=[];
%decode back to the normal array
new_array = RunLength(B, N)
new_array = 1×10
4 4 4 4 4 2 2 2 2 2

Weitere Antworten (1)

David Hill
David Hill am 9 Mär. 2022

0 Stimmen

a=num2str(yourArray==30);
a=a(a~=' ');
[s,f]=regexp(a,'[1]*');
new_array=[s,f];

1 Kommentar

Daniel Adeniyi
Daniel Adeniyi am 9 Mär. 2022
Is it possible to have an output such as [4 4 4 4 4 2 2 2 2 2] instead of their unique value.

Melden Sie sich an, um zu kommentieren.

Kategorien

Gefragt:

am 9 Mär. 2022

Beantwortet:

Rik
am 9 Mär. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by