Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

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.

Bob Choy

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!

Matt Fig
Answer by Andrei Bobrov on 17 Nov 2012

a - your matrix

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

0 Comments

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

0 Comments

Walter Roberson

Contact us