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

32 vues (au cours des 30 derniers jours)
Alizee
Alizee le 22 Avr 2013
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.

Réponse acceptée

Walter Roberson
Walter Roberson le 22 Avr 2013
C(n+1:end+1,:) = C(n:end,:);
C(n,:) = {};
  2 commentaires
Alizee
Alizee le 22 Avr 2013
Thank you very much Walter, simple and elegant, couldn't find better. Have a good day.
Ariel
Ariel le 28 Juil 2014
What is n in this case?

Connectez-vous pour commenter.

Plus de réponses (1)

Vecta Matlab
Vecta Matlab le 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.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by