ACACManagement 2021-11-15 22:25 采纳率: 76.5%
浏览 108
已结题

求一个Matlab程序代码,实现以下循环过程。

已知有两个随机排序向量( A和B)。假设每个向量里面都是十五个元素, 数值为1到15
第一步:构造一个C向量:用A向量减去B向量中所有元素求绝对值。
第二步:找到C向量中最大的元素。如果只有一个最大元素,则将A,B向量中与C向量中相同位置的元素移除, 得到A_1 和 B_1
如果有两个以上最大元素,则比较与C中最大元素位置相同的A向量和B向量对应元素,将A,B向量中含有最大值的那一组元素移除,得到A_1 和 B_1
第三步:将一二步骤进行循环,直到A, B 向量中各自剩下一个元素。
第四步:依次标记被移除元素在C中的位置。构造新的向量。

  • 写回答

1条回答 默认 最新

  • CSDN专家-Matlab_Fans 2021-11-15 23:16
    关注
    
    
    clear
    clc
    
    A = randperm(15);
    B = randperm(15);
    
    
    A_1 = A;
    B_1 = B;
    ii = 1;
    while length(A_1) > 1
        
        %% 做差
        C = abs(A_1-B_1);
        ind = find( C == max(C)) ;
        
        %% 找出下标
        [~,ind2] = max(A_1(ind));
        [~,ind3] = max(B_1(ind));
        if A( ind(ind2) ) >= B( ind(ind3) ) 
            ind = ind(ind2);
        else
            ind = ind(ind3);
        end
        
       
        %% 保存位置
        D(ii) = ind;        % 每次移除数据在A中的下标
        DA(ii) = A_1(ind);  % A中移除数据
        DB(ii) = B_1(ind);  % B中移除数据
        DC(ii) = C(ind);  % B中移除数据
        ii = ii+1;
        
        %% 移除操作
        A_1 = [A_1(1:ind-1) A_1(ind+1:end)];  
        B_1 = [B_1(1:ind-1) B_1(ind+1:end)];  
    end
    
    D
    DA
    DB
    DC
    

    结果:

    被移除元素在C中的位置
    
    D =
    
         7     9     2    11     6     1     6     5     4     6     5     3     2     1
    
    被移除A中元素
    DA =
    
        13    12     4     3     2    10    15     1    11     8     9     7     6     5
    
    被移除B中元素
    DB =
    
         1     2    13    11    10     3     9     7    15     4    12     8     5     6
    
    被移除C中元素
    DC =
    
        12    10     9     8     8     7     6     6     4     4     3     1     1     1
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月24日
  • 已采纳回答 11月16日
  • 创建了问题 11月15日

悬赏问题

  • ¥15 cplex运行后参数报错是为什么
  • ¥15 之前不小心删了pycharm的文件,后面重新安装之后软件打不开了
  • ¥15 vue3获取动态宽度,刷新后动态宽度值为0
  • ¥15 升腾威讯云桌面V2.0.0摄像头问题
  • ¥15 关于Python的会计设计
  • ¥15 聚类分析 设计k-均值算法分类器,对一组二维模式向量进行分类。
  • ¥15 stm32c8t6工程,使用hal库
  • ¥15 找能接spark如图片的,可议价
  • ¥15 关于#单片机#的问题,请各位专家解答!
  • ¥15 博通raid 的写入速度很高也很低