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

 Réponse acceptée

Kirby Fears
Kirby Fears le 23 Sep 2015
Modifié(e) : Kirby Fears le 23 Sep 2015

1 vote

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 commentaires

JFz
JFz le 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 le 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 le 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 le 24 Sep 2015
I tried to use innerjoin but I got 0 row in the resulting table.
JFz
JFz le 24 Sep 2015
Hi,
Thanks Kirby,
I got it! I used innerjoin on two table and it worked!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Produits

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by