Sum up a value to a row and create new colum at the end of the cell

1 次查看(过去 30 天)
How can I add to a row 1 unit? I have the following cell:
A= {12 1996 1999
15 1999 2002
26 1997 2001
43 1999 2008
59 1995 2000}
I would like the output to be:
Output={A= {12 1996 1999 2000
15 1999 2002 2003
26 1997 2001 2004
43 1999 2008 2009
59 1995 2000 2001}
I tried this:
A(:,end+1) = cell2mat(A(:,3))+1;
It gives me the error: 'Conversion to cell from double is not possible.'
But if I take out the 'cell2mat', I get the error: 'Undefined function 'plus' for input arguments of type 'cell'.'
Does someone know how to solve the problem? Thank you

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2014-7-27
编辑:Azzi Abdelmalek 2014-7-27
cell2mat(cellfun(@(x) [x x+1],A,'un',0))
%or
[A num2cell([A{:}]+1)']
  2 个评论
Maria
Maria 2014-7-27
ok I omited the part that I have more rows that I presented in the example. I believe that's why the codes are not working. I will edit. Sorry

请先登录,再进行评论。

更多回答(1 个)

Andrei Bobrov
Andrei Bobrov 2014-7-27
A(:,end+1) =cellfun(@(x)x+1,A(:,end),'un',0)

类别

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

标签

Community Treasure Hunt

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

Start Hunting!

Translated by