dontknowmatlab 2022-03-16 15:11 采纳率: 60%
浏览 199
已结题

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];
如何判断三组都有点,并且在这三组中输出位置;然后判断前两组有的点,并输出在前两组中位置。再输出第三组中有前两组重复点所在位置,接着判断第三组中这些左右是否是前两套的,有就输出所有位置。

  • 写回答

3条回答 默认 最新

  • 技术专家团-Joel 2022-03-17 10:42
    关注

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

    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)) 
    % 接着判断第三组中这些左右是否是前两套的,有就输出所有位置
    % 上面这句话没整明白,题主好好描述一下
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 已采纳回答 3月18日
  • 创建了问题 3月16日