Select sequence of numbers from Array
5 ビュー (過去 30 日間)
古いコメントを表示
Lets say I have an array like so:
[1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 2 2 2 3 3 3 4 4 4]
(my real array is 3635 long)
I want to make a new array which shows which indexes have an nth time of sequence of 1's.
So like this:
the 3rd time the 1's are in sequence so in this case i would like it to return: [37 38 39]
1 件のコメント
Dyuman Joshi
2023 年 2 月 2 日
Is the real array same/similar as this one? Because there's a repeating pattern here so you can easily get the indices.
回答 (1 件)
Stephen23
2023 年 2 月 2 日
V = [1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 2 2 2 3 3 3 4 4 4];
X = V(:)==1;
Y = cumsum(diff([0;X])>0);
Z = 1:numel(V);
C = accumarray(Y(X),Z(X),[],@(a){a})
C{:}
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Multidimensional Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!