merge two matrix based on x and y
Show older comments
I have two matrixes one has x and y coordinations in 2 first columns and elevaiton in the third and the other have x and y in 2 first column and temperature in the third column. Some data points may not be available in the other one and they are not in the same order. So I want to merge these two matrixes based on the x and y coordination values means finally I want to get a matrix with x and y for the first two columns and corresponding elevation and temperature for the 3rd and forth matrix.
the order should be like make a forth column for matrixA and add the third column of matrix B to Matrix A if the first and 2nd columns both matches.
ANy help will be apprecuiated
5 Comments
James Tursa
on 8 Feb 2019
Please post a small complete example (inputs and desired output), showing how you would specifically deal with those points that do not have matching counterparts.
Jos (10584)
on 8 Feb 2019
Can you give a very(!!!!) short example of the input (.e.g, two 4-by-3 arrays), the expected output arrays, and the relation between these arrays?
Marmar
on 8 Feb 2019
Edited: Image Analyst
on 8 Feb 2019
Adam Danz
on 8 Feb 2019
Shouldn't this row [1 31 44 0] be this [1 31 44 4] ?
Marmar
on 8 Feb 2019
Answers (1)
Image Analyst
on 8 Feb 2019
Sounds like homework. Here's a hint:
data1 = [...13 34 5
14 35 5
1 36 6
2 43 10
3 42 8
5 44 10
6 36 1
7 33 0
8 32 3
1 31 4
9 30 6
5 28 1 ];
% and this is data 2:
data2 = [...
13 34 14
14 35 13
2 43 14
3 42 13
8 32 33
1 31 44
9 30 66
5 28 11]
[commonCoords, in1, in2] = intersect(data1(:, 1:2), data2(:, 1:2), 'rows')
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!