Copy table's certain data into another table with corresponding variable names

106 vues (au cours des 30 derniers jours)
Let's say I have a table with 10 rows and 10 columns. I'd like to copy 5 cols and 10 rows of the table into another one with their variable names. Is there a way to do that?
Thank you.

Réponse acceptée

Mohammad Abouali
Mohammad Abouali le 22 Oct 2014
Lets say you want move column Age from table1 to table2
table2.Age=table1.Age
Or if you want to move column 5 to 8 of table1 to table2 do this:
for c=5:8
table2.(T.Properties.VariableNames{c})=table1.(T.Properties.VariableNames{c});
end
  2 commentaires
Ege
Ege le 23 Oct 2014
When I try this on a sample table I get "Error using table/subsrefDot (line 48) Index exceeds matrix dimensions.
Error in table/subsref (line 62) [varargout{1:nargout}] = subsrefDot(t,s);" error
Mohammad Abouali
Mohammad Abouali le 23 Oct 2014
Modifié(e) : Mohammad Abouali le 23 Oct 2014
Do your two tables have the same number of rows?
By the way, I have assumed that both table2 and table1 are already defined.

Connectez-vous pour commenter.

Plus de réponses (1)

Guillaume
Guillaume le 22 Oct 2014
Modifié(e) : Guillaume le 22 Oct 2014
Just use normal indexing to get your new table:
demotable = cell2table(num2cell(randi(100, 10, 10)), ...
'VariableNames', ...
arrayfun(@(n) sprintf('Name_%d', n), 1:10, 'uni', 0))
newtable = demotable(:, 3:7)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by