MATLAB Answers

Bob Choy

Number of zeros in a matrix

Asked by Bob Choy
on 17 Nov 2012

I need to create a function where I have a matrix and the function returns the number of zeros in that matrix. I need to do this using the if condition.

Then write in a .txt file which columns had more than 12 zeros.

Can someone help me out with this?

Thank you very much.

  2 Comments

Azzi Abdelmalek
on 17 Nov 2012

Why did you need to do it with if condition?

Bob Choy
on 17 Nov 2012

Because thats what I usually work with but if thats impossible nevermind it.

Tags

Products

No products are associated with this question.

3 Answers

Answer by Matt Fig
on 17 Nov 2012
Edited by Matt Fig
on 17 Nov 2012
 Accepted answer

The number of zeros in the matrix A is:

sum(~A(:))

So we can make this a function:

f = @(x) sum(~x(:));

Now test it:

x = [1 2 3;0 0 0;3 0 9]
f(x)

  5 Comments

Bob Choy
on 18 Nov 2012

I want to write in a .txt file numbers of the columns that have more than 12 zeros. E.g. say I wanted the columns with atleast one zero. (Ignore the "if true" nonsense]

if true
  % code
end
M = 1 0 1 1
    1 1 1 0

I want the function to save a .txt file with the numbers 2 and 4.

Matt Fig
on 18 Nov 2012
M = [1 0 1 1;1 1 1 0]
fid = fopen('mytext.txt','wt')
fprintf(fid,'%i ',find(sum(~M) >= 1))
fclose(fid)
Bob Choy
on 18 Nov 2012

Thank you so much! Keep up the good work, cheers!


Answer by Andrei Bobrov
on 17 Nov 2012

a - your matrix

number_columns = find(sum(~a) > 12);

  0 Comments


Answer by Walter Roberson
on 18 Nov 2012
numel(M) - nnz(M)

  0 Comments


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today