how to count non breaking ones from matrix?

1 回表示 (過去 30 日間)
AMIT BHASKAR
AMIT BHASKAR 2015 年 12 月 4 日
回答済み: Andrei Bobrov 2015 年 12 月 4 日
hello sir/mam,i have a problem in counting non-breaking ones from this given matrix. can you suggest any algo or command to count that. result which i want is (2 2 5 4 2 4 4 2 2 2 2 2 2 2 2 2 3 4 2 4).

採用された回答

Thorsten
Thorsten 2015 年 12 月 4 日
For a single column, use
diffcol = diff([0; col; 0]);
n = max(find(diffcol==-1)-find(diffcol==1));
Just loop over each column
for i = 1:size(A,2);
diffcol = [0; A(:,i); 0];
n(i) = max(find(diffcol==-1)-find(diffcol==1));
end

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2015 年 12 月 4 日
t = [true(1,2);diff(A)~=0];
[m,n]=size(A);
[~,jj] = ndgrid(1:m,1:n);
ii = A.*cumsum(t.*A);
b = accumarray([ii(:)+1,jj(:)],1);
out = max(b(2:end,:));

カテゴリ

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

製品

Community Treasure Hunt

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

Start Hunting!

Translated by