count number of ones in binary matrix

20 vues (au cours des 30 derniers jours)
Aneesha Govindu
Aneesha Govindu le 20 Jan 2018
Modifié(e) : Stephen23 le 2 Fév 2020
1 0 1
0 1
1 1 0
i need the output as : no of ones is 5

Réponses (5)

Stephen23
Stephen23 le 20 Jan 2018
Modifié(e) : Stephen23 le 21 Jan 2018
Simplest and most efficient answer:
nnz(A)

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

James Tursa
James Tursa le 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 le 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 le 2 Fév 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 commentaire
Stephen23
Stephen23 le 2 Fév 2020
Modifié(e) : Stephen23 le 2 Fév 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')

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by