trying to accounting the number of zeros in random script

hello lets say i have this random script w=randint(1000,1) and i want to know how many 'zeros' there are in this script what should i do to account the 'zeros'? thanks!!

 采纳的回答

a=randint(1000,1);
numel(a(a==0))
or
sum(a==0)
or
numel(a)-nnz(a)

3 个评论

itsik says,
thank u for your answer but my problem is i want to know how MANY zeros there are all over the matrix lets say i have a=0 1 0 0 0 0 0 0 1 1 1 1 1 0 0
so im trying to make a code that accounting the numbers of zeros and will give me a=8 like there is 8 zeros thanks!
I wonder if you tried Paulo's answer. The solutions he gives are standard solutions to this problem and return the number of zeros in the array... Did you try them???
a = [0 1 0 0 0 0 0 0 1 1 1 1 1 0 0] % 9 zeros, not 8!
sum(a(:)==0) % This DOES count the zeros!
ans =
9
Minor quibbles.
randint is deprecated. To make a random vector of 0s and 1s you can do
a = randi(2,10000,1)-1;
On my machine, running 11a, the most efficient approach is
nnz(a==0)
followed by
sum(a==0)
and then
numel(a(a==0))

请先登录,再进行评论。

更多回答(2 个)

[EDIT: Tue Jun 14 05:17:56 UTC 2011 - Reformat - MKF]
Its simple make a for loop and use and conditional loop like "if else" when ever value is '0' in the matrix increment a variable if not continue the loop.
k=0;
for i= 1:1:n
if (f(i)=0)
k=k+1;
else continue
end
end

2 个评论

Yella, you have an error. The correct comparison operator is '=='.
if f(i)==0
This could be replaced by:
if ~f(i)

请先登录,再进行评论。

thanks all of u but i used this code: a=randint(1000,1); numel(a(a==0)) and it helped me!!!

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by