adding same size cell arrays

Assume I have a matrices C1,C2 as follows:
C1 = nx1 cell each cell is [5x5 double].
C2 = nx1 cell each cell is [5x5 double].
How to calculate C3 as:
C3{1,1} = C1{1,1}+C2{1,1};
C3{2,1} = C1{2,1}+C2{2,1};
.
.
C3{n,1} = C1{n,1}+C2{n,1};
using cellfun or any other method without looping

 Risposta accettata

dpb
dpb il 28 Dic 2015
cellfun(@plus,A,B,'uni',0)
cell2mat(A)+cell2mat(B)

2 Commenti

Just to clarify; your answer provides two ways to solve the problem;
C3 = cellfun(@plus,A,B,'uni',0);
Result in C3 a cell array, while
C3 = cell2mat(A)+cell2mat(B);
Result in C3 as array type double.
am l right??
Yes altho the latter is easily converted simply by enclosing in the curlies...
C3 = {cell2mat(A)+cell2mat(B)};
Which might have a performance advantage I've no idea...

Accedi per commentare.

Più risposte (1)

If you have the neural networks toolbox:
gadd(A,B)

1 Commento

command line documentation
help gadd
doc gadd
See also gsubtract, gmultiply, gdivide, gnegate.

Accedi per commentare.

Richiesto:

il 28 Dic 2015

Commentato:

il 29 Dic 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by