フィルターのクリア

Counting the number of runs in a sequence

7 ビュー (過去 30 日間)
olig
olig 2013 年 7 月 8 日
I have a sequence made up a number of 1's and 0's and I want to count how many runs of numbers occur within the sequence. For example taken the matrix
A=[1,1,1,0,0,1,1,1,1,0,0,0,0,1]
The 1st run: 1,1,1 The 2nd run: 0,0 The 3rd run: 1,1,1,1 The 4th run: 0,0,0,0 The 5th run: 1,
Therefore the total number of runs is 5.
Any help would be much appreciated thanks

回答 (5 件)

Matt J
Matt J 2013 年 7 月 8 日
編集済み: Matt J 2013 年 7 月 8 日
N_runs=nnz(diff(A))+1;

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 8 日
numel(strfind(A,[0,1]))+ numel(strfind(A,[1,0]))+1

Jan
Jan 2013 年 7 月 8 日

David Sanchez
David Sanchez 2013 年 7 月 8 日
A=[1,1,1,0,0,1,1,1,1,0,0,0,0,1];
N_runs = 1;
for k=2:length(A)
if A(k)~=A(k-1)
N_runs = N_runs +1;
end
end
  1 件のコメント
Jan
Jan 2013 年 7 月 8 日
Vectorized:
N_runs = sum(A(2:end) ~= A(1:end-1));

サインインしてコメントする。


Matt J
Matt J 2013 年 7 月 8 日
編集済み: Matt J 2013 年 7 月 8 日
If you have the Image Processing Toolbox,
C=bwconncomp([A,~A]);
N_runs=C.NumObjects;

カテゴリ

Help Center および File ExchangeImages についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by