求一个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中的位置。构造新的向量。



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