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

 Respuesta aceptada

Kirby Fears
Kirby Fears el 23 de Sept. de 2015
Editada: Kirby Fears el 23 de Sept. de 2015

1 voto

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 comentarios

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Etiquetas

Preguntada:

JFz
el 23 de Sept. de 2015

Comentada:

JFz
el 24 de Sept. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by