Add rows to table, not append

3 visualizaciones (últimos 30 días)
Emily Doherty
Emily Doherty el 19 de Dic. de 2021
Comentada: Siddharth Bhutiya el 5 de En. de 2022
I have a table and need to add rows to it, but I do not want to append them to the end of the table. For instance, I have a table with 5 rows and I need to add a row, but I need the new row to be the 2nd row and all the successive rows to move down one.

Respuestas (1)

Star Strider
Star Strider el 19 de Dic. de 2021
One approach is to duplicate the table by first moving everything from the second row to the end down one, then inserting the new row into it —
T1 = array2table(randi(9 ,10, 3))
T1 = 10×3 table
Var1 Var2 Var3 ____ ____ ____ 2 7 6 5 1 1 3 2 6 8 3 8 2 2 9 2 4 5 2 9 7 3 5 3 6 2 8 5 2 2
newRow = randi([10 19], 1, 3)
newRow = 1×3
10 12 11
T1{3:end+1,:} = T1{2:end,:}; % Expand Table Row Length
T1{2,:} = newRow % Insert New Row To Create Desired REsult
T1 = 11×3 table
Var1 Var2 Var3 ____ ____ ____ 2 7 6 10 12 11 5 1 1 3 2 6 8 3 8 2 2 9 2 4 5 2 9 7 3 5 3 6 2 8 5 2 2
.
  1 comentario
Siddharth Bhutiya
Siddharth Bhutiya el 5 de En. de 2022
Another way to do it would be to use vertcat.
>> T1 = array2table(randi(9 ,10, 3))
T1 =
10×3 table
Var1 Var2 Var3
____ ____ ____
7 4 3
1 4 7
3 7 6
1 8 2
1 2 2
8 5 5
7 5 9
3 6 4
9 7 6
1 7 3
>> i = 2; % Insert a new second row
>> data = {10 12 11}; % new data for the second row
>> T1 = [T1(1:i-1,:); data; T1(i:end,:)]
T1 =
11×3 table
Var1 Var2 Var3
____ ____ ____
7 4 3
10 12 11
1 4 7
3 7 6
1 8 2
1 2 2
8 5 5
7 5 9
3 6 4
9 7 6
1 7 3

Iniciar sesión para comentar.

Categorías

Más información sobre Tables en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by