count number of ones in binary matrix
Show older comments
1 0 1
0 1
1 1 0
i need the output as : no of ones is 5
Answers (5)
Simplest and most efficient answer:
nnz(A)
Birdman
on 20 Jan 2018
A=[1 0 1;0 0 1;1 1 0];
cnt=sum(A(A==1))
James Tursa
on 20 Jan 2018
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
on 20 Jan 2018
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
on 2 Feb 2020
0 votes
function y = one(x)
c=0;
for i=1:length(x)
if(x(i)==49)
c=c+1;
end
end
y=c;
end
1 Comment
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')
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!