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

 Akzeptierte Antwort

Kirby Fears
Kirby Fears am 23 Sep. 2015
Bearbeitet: Kirby Fears am 23 Sep. 2015

1 Stimme

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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Produkte

Tags

Gefragt:

JFz
am 23 Sep. 2015

Kommentiert:

JFz
am 24 Sep. 2015

Community Treasure Hunt

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

Start Hunting!

Translated by