Adding values of each element of cell array
14 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi i have following cell array x which contains elements like this:
x{1,1}={0.8,1.4}
x{1,2}= {2.6,2,3.4}
x{1,3}= {1,2}
i want to add values within each cell like in x{1,1}, 0.8 and 1.4 will be added.
Result = {[2.2],[8],[3]}
Thank you
0 Commenti
Risposta accettata
dpb
il 2 Set 2018
Modificato: dpb
il 3 Set 2018
Don't "double-up" cell indexing; makes dereferencing much more complicated than need be...
Define x as
x{1,1}=[0.8,1.4];
x{1,2}= [2.6,2,3.4];
x{1,3}= [1,2];
instead. Then it's simply
>> cellfun(@sum,x)
ans =
2.2000 8.0000 3.0000
>>
If there is some reason (but I can't think of what that could be) that the "cell inside a cell" simply must be, then you've got to do a bit more work...
x{1,1}={0.8,1.4};
x{1,2}= {2.6,2,3.4};
x{1,3}= {1,2};
>> cellfun(@(x) sum([x{:}]),x)
ans =
2.2000 8.0000 3.0000
>>
Remembering to use them and having to write all those extra brackets and curlies is a lot of complexity; just "don't do that!" by nesting and avoid it.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Multidimensional Arrays in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!