matlab如何得到三个数组中的有重复数值的位置

例如:数组一[19,18,17,16,15,14,13,12,11];数组二[1,2,17,16,3,14,5,6,7];数组三[21,2,17,16,23,24,5,12,25];
如何判断三组都有点,并且在这三组中输出位置;然后判断前两组有的点,并输出在前两组中位置。再输出第三组中有前两组重复点所在位置,接着判断第三组中这些左右是否是前两套的,有就输出所有位置。

这个规则看着蛮绕的,其实很好实现啊!!

a1 = [19,18,17,16,15,14,13,12,11];
a2 = [1,2,17,16,3,14,5,6,7];
a3 = [21,2,17,16,23,24,5,12,25];
p123 = intersect(intersect(a1,a2),a3) % 三组都有的点
% 在这三组中输出位置pos1, pos2, pos3
pos1 = find(ismember(a1,p123)) 
pos2 = find(ismember(a2,p123))
pos3 = find(ismember(a3,p123))
% 然后判断前两组有的点,并输出在前两组中位置
p12 = intersect(a1,a2)  % 前两组都有的点
posistion1 = find(ismember(a1,p12)) 
posistion2 = find(ismember(a2,p12)) 
% 再输出第三组中有前两组重复点所在位置
posistion3 = find(ismember(a3,p12)) 
% 接着判断第三组中这些左右是否是前两套的,有就输出所有位置
% 上面这句话没整明白,题主好好描述一下



A=[1 1 1 nan 1 nan]
B=[nan 1 1 1 nan nan]
find(A==B)

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632