Intersection of two matrices based on 1st column

I have two matrices of with different number of columns but same number of rows (large data sets). Here is an exapmle.
A = [1 2 3; 4 5 6; 6 8 9];
B = [1 2 3 5; 4 6 7 8 ; 9 10 11 12];
I am looking to compare A and B on the basis of values in 1st column only and get an out put of the rows which are not common based on this criteria. Hence,
C = [ 9 10 11 12];
I have tried intersect with rows option but it needs same number of columns and secondly i dont have same values throught two rows (but only in the1st column) to work it properly.

1 comentario

Yasir Zahoor
Yasir Zahoor el 11 de Feb. de 2019
Just to add, I would like to keep the order of the resultant rows intact.

Iniciar sesión para comentar.

 Respuesta aceptada

Guillaume
Guillaume el 11 de Feb. de 2019
[~, rowstokeep] = setdiff(B(:, 1), A(:, 1)); %get index of rows in B whose 1st column is not in 1st column of A
C = B(rowstokeep, :)

2 comentarios

Guillaume
Guillaume el 11 de Feb. de 2019
Just to add, I would like to keep the order of the resultant rows intact.
Use the 'stable' option of setdiff, then.
Yasir Zahoor
Yasir Zahoor el 11 de Feb. de 2019
thanx

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Get Started with MATLAB en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 11 de Feb. de 2019

Comentada:

el 11 de Feb. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by