how to count non breaking ones from matrix?
1 次查看(过去 30 天)
显示 更早的评论
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).

0 个评论
采纳的回答
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
0 个评论
更多回答(1 个)
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,:));
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!