matlab代码详细解释注释

麻烦帮忙详细解释注释一下下面的代码什么意思
RR1(k1,:) = (y*r'/(r*r'))*r; %将(y*r'/(r*r'))*r给RR1的第k1行 
        y=y-RR1(k1,:);  %残余信号
        remenold = remen;  
        if testcond  %什么意思
            remen = sum((sum(RR1(stept:end,:),1)-orig2).^2)/(sum(orig2.^2)); %.^2是矩阵中的每个元素都求平方
            if k1 == stept+3
                break
            end
        else
            remen = sum((sum(RR1(1:end,:),1)-orig).^2)/(sum(orig.^2));  %残余信号与原信号之间的标准均方误差
        end
        % in rare cases, convergence becomes very slow; the algorithm is then
        % stopped if no real improvement in decomposition is detected (this is 
        % something to fix in future versions of SSD)
        if abs(remenold - remen)< 1e-5   %判断残余信号与原信号直接的标准均方误差,如果该值<自定义阈值th的0.01时,认为分解完成  否则将该残余信号当原信号继续分解
            testcond = 1;
            stept = k1+1;
            orig2 = y;
        end

RR1(k1,:) = (y*r'/(r*r'))*r; %!通(MISSING)过r与y的内积求出系数,再乘以r得到RR1的第k1行
y=y-RR1(k1,:); %!将(MISSING)RR1的第k1行减去原信号y得到残余信号
remenold = remen; %!将(MISSING)remen赋给remenold,用于后续比较
if testcond %!如(MISSING)果testcond为真
    remen = sum((sum(RR1(stept:end,:),1)-orig2).^2)/(sum(orig2.^2)); %!计(MISSING)算残余信号与原信号之间的标准均方误差
    if k1 == stept+3 %!如(MISSING)果k1等于stept+3
        break; %!跳(MISSING)出循环
    end
else %!如(MISSING)果testcond为假
    remen = sum((sum(RR1(1:end,:),1)-orig).^2)/(sum(orig.^2)); %!计(MISSING)算残余信号与原信号之间的标准均方误差
end
%!如(MISSING)果残余信号与原信号直接的标准均方误差小于自定义阈值th的0.01,认为分解完成
if abs(remenold - remen)< 1e-5 
    testcond = 1; %!设(MISSING)置testcond为真
    stept = k1+1; %!s(MISSING)tept赋值为k1+1
    orig2 = y; %!将(MISSING)残余信号赋值给orig2
end