matlab两个数组元素提取交集

有两个数组A和B,其中A数组是二行1000列的数组,B数组是一行500列的数组。B的第一行在A的第一行中都有对应元素,也就是B的第一行是A的第一行的子集。现在想把A数组的第一行中和B数组重合的部分以及对应位置的第二行的元素提取出来,生成一个新的数组C,也就是C数组第一行是B数组,第二行是A数组对应位置,请问如何实现。

你好,用ismember函数就能实现你的想法

A = [1,2,3,4,5,6,7,8,9,10; 1,1,2,2,3,3,4,4,5,5]; % 我这里只是示例,你的A自己换着来
B= [2,3,4,5]; % 只是示例,根据需要更换成你的B数组
q = ismember(A(1,:), B);
C = A(:,q)

这里的C就是你需要的

C =

     2     3     4     5
     1     2     2     3

如有帮助,还烦劳题主给个宝贵的采纳支持一下答主答题哟,谢谢啦(づ ̄3 ̄)づ╭❤~