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

158 views (last 30 days)
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.

Accepted Answer

Mohammad Abouali
Mohammad Abouali on 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 Comments
Ege
Ege on 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 on 23 Oct 2014
Edited: Mohammad Abouali on 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.

Sign in to comment.

More Answers (1)

Guillaume
Guillaume on 22 Oct 2014
Edited: Guillaume on 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)

Categories

Find more on Tables in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!