adding same size cell arrays

26 visualizzazioni (ultimi 30 giorni)
Alnazer
Alnazer il 28 Dic 2015
Commentato: Greg Heath il 29 Dic 2015
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
Alnazer
Alnazer il 28 Dic 2015
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??
dpb
dpb il 28 Dic 2015
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)

Sean de Wolski
Sean de Wolski il 28 Dic 2015
If you have the neural networks toolbox:
gadd(A,B)
  1 Commento
Greg Heath
Greg Heath il 29 Dic 2015
command line documentation
help gadd
doc gadd
See also gsubtract, gmultiply, gdivide, gnegate.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by