How do i count same consecutive occurrences

32 visualizzazioni (ultimi 30 giorni)
DuckDuck
DuckDuck il 23 Ott 2018
Commentato: Bruno Luong il 16 Dic 2021
Consider I have an array of occurrences
A=[1,1,1,1,1,2,2,2,2,3,3,3,3,2,2,2,1,1,1,1]
I want to find out how many 2 are on each occurrence. The answer should be 4 starting 6th position and 3 starting 14 positions.
Is it possible to do it in a wise Matlab way without many loop complications?

Risposte (3)

madhan ravi
madhan ravi il 23 Ott 2018
Modificato: madhan ravi il 23 Ott 2018

Daniel Pare
Daniel Pare il 5 Nov 2019
I wanted to count how many time in a row Head or Tail will occure from a random draw and I came up with this.
Let (x) be your vector of observation like x = [1 1 0 1 0 0 0 1]
The result will be: s = [ 2 1 1 3 1]
s=0 ;
j=2;
i=1;
while i < nb_it+1
c=1;
if i == nb_it
s = [ s c];
break
else
while x(i) == x(i+1)
c = c+1;
i = i+1;
if i == nb_it
break
end
end
end
s = [ s c];
i = i+1;
end
s = s(2:end); % to remove the first zero
sum(s) % the sum should be equal to the number of element in (x)
max(s) % This is the maximum of consecutive ocurence from the draw
  5 Commenti
giannit
giannit il 23 Apr 2020
That one line command is amazing, many thanks!
gummiyummi
gummiyummi il 3 Ago 2020
I get an error: Error using horzcat. Dimensions of arrays being concatenated are not consistent.
Can anybody help resolve this?

Accedi per commentare.


Bruno Luong
Bruno Luong il 3 Ago 2020
Modificato: Bruno Luong il 16 Dic 2021
Example:
A=[1,1,1,1,1,2,2,2,2,3,3,3,3,2,2,2,1,1,1,1]
Code
d = diff([0, A==2, 0]);
startidx = find(d==1)
lgt = find(d==-1)-startidx % EDIT error
Result
startidx =
6 14
lgt =
4 3
  4 Commenti
Ayush Meena
Ayush Meena il 15 Dic 2021
@Bruno can you please tell me what is idx here?
Bruno Luong
Bruno Luong il 16 Dic 2021
@Ayush Meena it's a typo, should be startidx.

Accedi per commentare.

Categorie

Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by