How to add two tables

I have two tables of different number of rows but with same structure. They both have 3 columns, the 3rd column is numbers. How to create a new table which has the common rows on column 1 and column2 and sum on column 3?
Thanks.
Jennifer

 Accepted Answer

Kirby Fears
Kirby Fears on 23 Sep 2015
Edited: Kirby Fears on 23 Sep 2015
Hi Jennifer,
Here's code with sample data that performs your task.
data=magic(3); % sample data
% creating sample tables 1 and 2
table1=array2table(data,'VariableNames',{'key1','key2','values'});
table2=array2table(data,'VariableNames',{'key1','key2','values'});
% joining tables on key1 and key2 only
tablejoin=join(table1,table2,'Keys',{'key1','key2'});
% add value columns together and delete the extra column
tablejoin.values_table1=tablejoin.values_table1+tablejoin.values_table2;
tablejoin.values_table2=[];
Hope this helps.

5 Comments

JFz
JFz on 24 Sep 2015
Thanks so much! It works! Works exactly as I wished. The only thing is that, what is the two tables are not of the same number of rows? Say, one table has 4 rows, the other only 3 rows.
JFz
JFz on 24 Sep 2015
Hi, Kirby,
I got an error:
Error using table/join (line 132) The key variables for B must contain all unique combinations of values in the key variables for A.
JFz
JFz on 24 Sep 2015
I tried to use 'Type' in the join, but I keep getting this error: Error using table/join (line 85) Invalid parameter name: Type.
JFz
JFz on 24 Sep 2015
I tried to use innerjoin but I got 0 row in the resulting table.
JFz
JFz on 24 Sep 2015
Hi,
Thanks Kirby,
I got it! I used innerjoin on two table and it worked!

Sign in to comment.

More Answers (0)

Products

Tags

Asked:

JFz
on 23 Sep 2015

Commented:

JFz
on 24 Sep 2015

Community Treasure Hunt

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

Start Hunting!