Asked by Thomas
on 30 Mar 2012

The sum of an empty matrix does not always follow the rule 'sum(empty) = 0'. What's up with this?

>> sum(ones(1,0))

ans = 0

>> sum(ones(0,1),2)

ans = Empty matrix: 0-by-1

>> sum(ones(2,0))

ans = Empty matrix: 1-by-0

>> sum(ones(0,2),2)

ans = Empty matrix: 0-by-1

*No products are associated with this question.*

Answer by the cyclist
on 30 Mar 2012

I don't think this answers your question, but it does give some related info: http://blogs.mathworks.com/loren/2009/11/04/calculus-with-empty-arrays/

Opportunities for recent engineering grads.

## 1 Comment

## Thomas (view profile)

Direct link to this comment:http://nl.mathworks.com/matlabcentral/answers/34041#comment_71127

There is also some funny business with find on an 'all false' matrix, the behavior of find(0) seems inconsistent.

>> [x y] = meshgrid(0:2,0:2)

x =

0 1 2

0 1 2

0 1 2

y =

0 0 0

1 1 1

2 2 2

>> x=num2cell(x)

x =

[0] [1] [2]

[0] [1] [2]

[0] [1] [2]

>> y = num2cell(y)

y =

[0] [0] [0]

[1] [1] [1]

[2] [2] [2]

>> cellfun(@(z,w) find(zeros(z,w)), y, x, 'UniformOutput', false)

ans =

[] [0x1 double] [0x1 double]

[1x0 double] [] [1x0 double]

[0x1 double] [0x1 double] [0x1 double]