Adding duplicate values based on table variable names

I have a large set of tables, separated by date, with geographical coordinates (X_LOC and Y_LOC) and user defined fields to visualize ('CustInt', for example).
My mission is to combine those tables, and if exact X_LOC and Y_LOC duplicates exist, add the values together. Though, this may not be a necessity as the precision of the coordinates is in the 0.000001 range. So for example:
File 1: File 2:
X_LOC Y_LOC CustInt {... other fields} X_LOC Y_LOC CustInt
12.100 13.100 20 ... 12.100 13.11 20
Combined:
X_LOC Y_LOC CustInt
12.100 13.100 20
12.100 13.11 20
The only thing to keep in mind is that the files are large (thousands * 31 variables) and my idea of iterating through duplicates could increase complexity exponentionally.
Would a simple outerjoin() be helpful? Is there any way of combining only columns that you want for two tables?
Thanks in advance.

4 个评论

In my opinion using the "ismember" function mybe helpful to determine the matching rows in file1 and file2 and adding the missing entries.
[file1, file2] = ismember(file1.X_LOC, file2.X_LOC);
file1(indx1,'X_LOC') = file2(indx2(indx1),'X_LOC');
Then you can remove unwanted columns.
@Behzad Navidi: your code overwrites file1 and file2, and does not define indx1 nor indx2. Did you mean?:
[indx1, indx2] = ismember(file1.X_LOC, file2.X_LOC);
Oh, I'm sorry my bad. Yes, I thought he could think about ismember. Thank you.
ismembertol seems more realistic than ismember for this purpose

请先登录,再进行评论。

回答(0 个)

类别

帮助中心File Exchange 中查找有关 Data Distribution Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by