Add a row above row nb 'X' in a cell array

30 views (last 30 days)
Hello,
I would like to know if there is an easy way in Matlab to add a row above another in a cell array? This would corresponds to the function 'insert' in Excel which shifts all rows below down.
Example:
-Initial cell array= {'a','1';'b','2';'c','3'};
-Add row above row nb 2...
-Final cell array= {'a','1';'','';'b','2';'c','3'};
I have tried to to do it by concatenating a new empty one row cell array but of course this raises exceptions if I want to add a row above the first one or above the last one.
Thank you in advance for your help.

Accepted Answer

Walter Roberson
Walter Roberson on 22 Apr 2013
C(n+1:end+1,:) = C(n:end,:);
C(n,:) = {};
  2 Comments
Alizee
Alizee on 22 Apr 2013
Thank you very much Walter, simple and elegant, couldn't find better. Have a good day.

Sign in to comment.

More Answers (1)

Vecta Matlab
Vecta Matlab on 18 Sep 2019
In 2018a, this needs a bit change.
C(n+1:end+1,:) = C(n:end,:);
C(n,:) = {[]};
Or it throws an error.
Unable to perform assignment because the size of the left side
is 1-by-3 and the size of the right side is 0-by-0.

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!