У меня есть 2 набора столбцов в MATLAB, которые необходимо сопоставить. Существует несколько способов сделать это, если картирование не должно быть one-to-one
. Мой пример ниже будет проиллюстрировать то, что я пытаюсь сделатьСовпадение 2 набора столбцов на основе ONE-to-ONE в MATLAB
mat1 = [ 100 734567 500 734567 23
1011 734568 200 734568 11
1011 734568 200 734568 23
1011 734568 200 734568 23
1011 734568 200 734568 34
1111 734569 300 734569 34 ] ; % ignore last column
mat2 = [ 1011 734568 200 734568
1011 734568 200 734568
1011 734568 100 734568
1111 734569 300 734569 ] ;
Мне нужно удалить эти строки из MAT1, которые были найдены в MAT2, а также на основе столбцов 1,2,3,4. Результат:
mat1 = [ 100 734567 500 734567 23
1011 734568 200 734568 23
1011 734568 200 734568 34 ] ;
Возможным решением было включить row_ids 1,2,3 .. для уникальных строк, как показано ниже, но я не мог реализовать то же самое. Спасибо за вашу помощь! Фактические наборы данных являются большими и поэтому предпочтительным является векторизованное решение!
mat2 = [ 1011 734568 200 734568 1
1011 734568 200 734568 2
1011 734568 100 734568 1
1111 734569 300 734569 1
-> для идентификатора 1011, строка 1,2,3 точно соответствует набору в mat2. Но так как mat2 имел только 2 из этих строк, только 2 из них были удалены из mat1. Пожалуйста, дайте мне знать, если все еще неясно. – Maddy
@Maddy. Понимаю. Это сложнее –