count number of ones in binary matrix

20 Ansichten (letzte 30 Tage)
Aneesha Govindu
Aneesha Govindu am 20 Jan. 2018
Bearbeitet: Stephen23 am 2 Feb. 2020
1 0 1
0 1
1 1 0
i need the output as : no of ones is 5

Antworten (5)

Stephen23
Stephen23 am 20 Jan. 2018
Bearbeitet: Stephen23 am 21 Jan. 2018
Simplest and most efficient answer:
nnz(A)

Birdman
Birdman am 20 Jan. 2018
A=[1 0 1;0 0 1;1 1 0];
cnt=sum(A(A==1))

James Tursa
James Tursa am 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
Image Analyst am 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
sumanth kumar am 2 Feb. 2020
function y = one(x)
c=0;
for i=1:length(x)
if(x(i)==49)
c=c+1;
end
end
y=c;
end
  1 Kommentar
Stephen23
Stephen23 am 2 Feb. 2020
Bearbeitet: Stephen23 am 2 Feb. 2020
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')

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by