MATLAB Answers

## Number of zeros in a matrix

Asked by Bob Choy

### Bob Choy (view profile)

on 17 Nov 2012
Accepted Answer by Matt Fig

### Matt Fig (view profile)

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.

Azzi Abdelmalek

### Azzi Abdelmalek (view profile)

on 17 Nov 2012

Why did you need to do it with if condition?

Bob Choy

### Bob Choy (view profile)

on 17 Nov 2012

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

## Products

No products are associated with this question.

## 3 Answers

### Matt Fig (view profile)

Answer by Matt Fig

### Matt Fig (view profile)

on 17 Nov 2012
Edited by Matt Fig

### Matt Fig (view profile)

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)
```

Bob Choy

### Bob Choy (view profile)

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

### Matt Fig (view profile)

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

### Bob Choy (view profile)

on 18 Nov 2012

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

### Andrei Bobrov (view profile)

Answer by Andrei Bobrov

### Andrei Bobrov (view profile)

on 17 Nov 2012

a - your matrix

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

### Walter Roberson (view profile)

Answer by Walter Roberson

### Walter Roberson (view profile)

on 18 Nov 2012
```numel(M) - nnz(M)
```

#### Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today