Find the intersect of two columns from different matrix but keep the corresponding cells from the same row along with the intercept values

6 views (last 30 days)
I have two matrix with two columns. For example
A = [2 2; 4 3; 6 5; 8 3; 10 2]
B = [2 1; 3 2; 5 2; 8 2; 10 1]
I want to find the values from the first column that intersect. I can do this using 'C = intersect(A(:,1),B(:,1)). However, the output that I actaully want is a new matrix which keeps the corresponding values from the 2nd column of matrix A and B, along with the intercept values not just the intercept values which are spat out from the intersect function. So I end up with:
D = [2 8 10;
2 3 2;
1 2 1]
The above is a simplified example but I want to be able to apply it to a dataset with thousands of rows.

Accepted Answer

Stephen23
Stephen23 on 15 Oct 2019
Edited: Stephen23 on 15 Oct 2019
>> A = [2,4,6,8,10;2,3,5,3,2]
A =
2 4 6 8 10
2 3 5 3 2
>> B = [2,3,5,8,10;1,2,2,2,1]
B =
2 3 5 8 10
1 2 2 2 1
>> [V,X,Y] = intersect(A(1,:),B(1,:));
>> D = [V;A(2,X);B(2,Y)]
D =
2 8 10
2 3 2
1 2 1
  3 Comments
Stephen23
Stephen23 on 16 Oct 2019
>> A = [2,2;4,3;6,5;8,3;10,2]
A =
2 2
4 3
6 5
8 3
10 2
>> B = [2,1;3,2;5,2;8,2;10,1]
B =
2 1
3 2
5 2
8 2
10 1
>> [V,X,Y] = intersect(A(:,1),B(:,1));
>> D = [V,A(X,2),B(Y,2)]
D =
2 2 1
8 3 2
10 2 1

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!