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

1 回表示 (過去 30 日間)
Maria
Maria 2014 年 7 月 27 日
回答済み: Andrei Bobrov 2014 年 7 月 27 日
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
Maria
Maria 2014 年 7 月 27 日
thanks, it works perfectly like this!
A=[A num2cell([A{:,3}]+1)'];

サインインしてコメントする。

その他の回答 (1 件)

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

カテゴリ

Help Center および File ExchangeData Type Conversion についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by