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

Sum of empty matrix

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

1 Comment

Thomas on 30 Mar 2012

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]

Thomas

Products

No products are associated with this question.

2 Answers

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/

0 Comments

the cyclist
Answer by Jan Simon on 30 Mar 2012

Especially:

sum(ones(1, 0))  %  0
sum(ones(2, 0))  %  Empty matrix: 1-by-0

is not intuitive anymore. Please contact the technical support and ask for an enhancement.

0 Comments

Jan Simon

Contact us