countRepetitions
How many sequences of any repeated element exist in a vector (and how long are they)? Example below.
T = COUNTREPETITIONS(A) returns the total number of repetitions of any
element in A. The n-th element in T is the number of n-time-repetitions
of any element in A.
[T,D] = COUNTREPETITIONS(A) also returns a structure, containing a detailed
listing of all repetitions for each element in A.
D.elements just reflects unique(A). Cell array k in D.listing contains only
the repetitions of D.elements(k), using the same format as T.
Input is restricted to be a vector of type logical, numeric or char.
Matrices don't get rejected, but are interpreted as single vector, written
column-wise from left to right (so possibly not what you want).
Example:
For A = [0,1,0,0,1,1,1,42,42,42], [T,D] = COUNTREPETITIONS(A) yields:
T = [2 1 2 0 0 0 0 0 0 0], thus reporting 2x single elements, 1x a tuple,
and 2x a triple of repeated elements.
D = elements: [0 1 42]
listing: {3x1 cell} is also easily interpreted:
D.listing contains all element-wise repetitions in the same order
as indicated by D.elements:
D.listing{:}
ans =
1 1 0 0 0 0 0 0 0 0 (<=> there's 1x a single 0, and 1x "[0,0]")
ans =
1 0 1 0 0 0 0 0 0 0 (<=> there's 1x a single 1, and 1x "[1,1,1]")
ans =
0 0 1 0 0 0 0 0 0 0 (<=> there's 1x "[42,42,42]")
Thus if you are interested in the repetitions of a specific element, you
may easily use logical indexing. For example:
D.listing{D.elements == 42}, just yields [0 0 1 0 0 0 0 0 0 0].
引用
Johannes Keyser (2024). countRepetitions (https://www.mathworks.com/matlabcentral/fileexchange/26957-countrepetitions), MATLAB Central File Exchange. 取得済み .
MATLAB リリースの互換性
プラットフォームの互換性
Windows macOS Linuxカテゴリ
タグ
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!バージョン | 公開済み | リリース ノート | |
---|---|---|---|
1.2.0.0 | Tried to improve on all of Jan Simons' criticisms:
|
||
1.1.0.0 | misunderstood tags, now corrected them ;-) |
||
1.0.0.0 |