Adding values of each element of cell array

11 Ansichten (letzte 30 Tage)
lucksBi
lucksBi am 2 Sep. 2018
Bearbeitet: dpb am 3 Sep. 2018
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

Akzeptierte Antwort

dpb
dpb am 2 Sep. 2018
Bearbeitet: dpb am 3 Sep. 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.
  1 Kommentar
lucksBi
lucksBi am 3 Sep. 2018
Yes i have converted into simple cell array as you suggested. Thanks alot for help.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by