How can I replace an entire row in a table?

12 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 12 Mar 2014
Commenté : Jim Hokanson le 2 Avr 2022
I have a table with many columns. Some of the columns have string elements, while other columns have double values. The code below creates this table:
% Create table columns
col1 = {'one';'two';'three'};
col2 = [1;2;3];
col3 = {'four';'five';'six'};
col4 = [4;5;6];
% Create table
myTable = table(col1,col2,col3,col4);
I also have a cell that has a single row that matches the pattern in the table as follows:
% Create cell
myCell = {'seven',8,'nine',10};
I would like to assign the cell array to replace the first row in the table, but when I execute the following code:
myTable(1,:) = myCell;
I get the following error:
Error using table/subsasgnParens (line 205)
Subscripted assignment dimension mismatch for table variable 'col1'.
Error in table/subsasgn (line 60)
t = subsasgnParens(t,s,b,creating);
How can I replace an entire row within a table?

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 30 Mai 2018
The error is expected given that an entire row within a table is itself a table, as such trying to assign a cell array to it is incompatible. In order to replace the entire row with the contents of the cell array you would need to first convert the cell array to a table and then do the assignment as follows:
% Convert cell to 'table'
myTableCell = cell2table(myCell);
% Assign to first row
myTable(1,:) = myTableCell;
  1 commentaire
Jim Hokanson
Jim Hokanson le 2 Avr 2022
Doesn't always work ...:
s = struct('a',{'a','b'},'b',{'c','d'})
t1 = struct2table(s);
t2 = struct2table(s(1));
t1(2,:) = t2
Conversion to cell from char is not possible.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Cell Arrays dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Produits


Version

R2013b

Community Treasure Hunt

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

Start Hunting!

Translated by