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

Learn moreOpportunities for recent engineering grads.

Apply Today
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/

## 1 Comment

Direct link to this comment:http://www.mathworks.nl/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]