Count consecutive elements in an array

2 vues (au cours des 30 derniers jours)
Debraj Midya
Debraj Midya le 6 Oct 2021
Commenté : Mathieu NOE le 7 Oct 2021
suppose i have an array like: A = [1 1 1 1 2 2 2 4 4 4 4 1 1 1 1 2]
I want the result in this form, B = [4 3 4 4 1].
or something like this will be best: B = [4 1; 3 2; 4 4; 4 1; 1 2]. First colums contains the number of entry and the second colums contains the entry itself.
Kindly help.

Réponse acceptée

Mathieu NOE
Mathieu NOE le 6 Oct 2021
hello
try this :
A = [1 1 1 1 2 2 2 4 4 4 4 1 1 1 1 2];
% A = [1 2 2 4 4 1 1 2];
%% main code
p=find(diff(A)~=0);
s1 = [p(1) diff(p) numel(A)-p(end)];
s2 = A(cumsum(s1));
B = [s1' s2'] % First colums contains the number of entry and the second colums contains the entry itself
  2 commentaires
Debraj Midya
Debraj Midya le 6 Oct 2021
This worked. Thank you Sir.
Mathieu NOE
Mathieu NOE le 7 Oct 2021
my pleasure

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by