count number of ones in binary matrix

20 次查看(过去 30 天)
1 0 1
0 1
1 1 0
i need the output as : no of ones is 5

回答(5 个)

Stephen23
Stephen23 2018-1-20
编辑:Stephen23 2018-1-21
Simplest and most efficient answer:
nnz(A)

Birdman
Birdman 2018-1-20
A=[1 0 1;0 0 1;1 1 0];
cnt=sum(A(A==1))

James Tursa
James Tursa 2018-1-20
Assuming you mean the sum of all elements:
A = your matrix;
result = sum(A(:));
If you really mean just the edges or something else, let us know.

Image Analyst
Image Analyst 2018-1-20
Do you really only care about the outer perimeter? So if the center is a 1, you want to ignore that? If so:
mTemp = m; % Make copy
mTemp(2, 2) = 0; % Make center zero so we won't count it if it's a 1.
numZeros = nnz(mTemp); % Effectively, count 1's in outer perimeter only.

sumanth kumar
sumanth kumar 2020-2-2
function y = one(x)
c=0;
for i=1:length(x)
if(x(i)==49)
c=c+1;
end
end
y=c;
end
  1 个评论
Stephen23
Stephen23 2020-2-2
编辑:Stephen23 2020-2-2
Although the function does not have any help or code comments, it appears that it was written to count the character '1' (which has a character value of 49) in a character vector, in which case the simple MATLAB equivalent would be:
y = nnz(x=='1')

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by