MATLAB Answers

Andrew

Subtracting two cell arrays, yielding a third cell array

Asked by Andrew
on 4 Jun 2011
Latest activity Commented on by Rahav
on 5 Apr 2015

Hi,

I have two cell array of vectors; each cell in both cell arrays contains a 1 by 3 vector. For example,

A={[20 20 20],[30 30 30],[40 40 40];[50 50 50],[60 60 60],[70 70 70]};
B={[1 1 1],[2 2 2],[3 3 3];[4 4 4],[5 5 5],[6 6 6]};

How can I subtract B from A? For example, I wish to find:

C={[19 19 19],[28 28 28],[37 37 37];[46 46 46],[55 55 55],[64 64 64]}

Is there a way I can do this without stepping through each cell, converting them to numeric arrays using cell2mat, and then converting them back to cells?

Thank you very much for your time.

Andrew DeYoung

Carnegie Mellon University

  0 Comments

1 Answer

Answer by Matt Fig
on 4 Jun 2011
 Accepted answer
C = cellfun(@minus,A,B,'Un',0)

  1 Comment

Rahav
on 5 Apr 2015
C = cellfun(@minus,A,B,'UniformOutput',false)

is clearer.


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today