MATLAB: How to replace an entire row in a table

MATLAB

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?

Best Answer

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;