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

101 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)

Products

Community Treasure Hunt

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

Start Hunting!