Adding values of each element of cell array

14 次查看(过去 30 天)
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

采纳的回答

dpb
dpb 2018-9-2
编辑:dpb 2018-9-3
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 个评论
lucksBi
lucksBi 2018-9-3
Yes i have converted into simple cell array as you suggested. Thanks alot for help.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by