Matrix 为什么这个倍频程代码不把这个矩阵转换成DM标准形式?代码与其他代码一起工作

Matrix 为什么这个倍频程代码不把这个矩阵转换成DM标准形式?代码与其他代码一起工作,matrix,permutation,sparse-matrix,Matrix,Permutation,Sparse Matrix,我需要使用稀疏矩阵的DM标准形式。这个倍频程代码对我尝试过的一些人有效,但这个不行。谁能告诉我为什么 A=[0,0,0,0,5,6,0,0,0,0; 1,0,0,0,0,6,0,0,0,0; 0,0,0,0,5,0,0,0,9,0; 1,0,0,0,0,0,7,0,0,0; 0,0,3,0,0,0,7,8,0,0; 0,0,0,4,0,0,0,8,9,0; 0,2,3,0,0,0,0,0,0,0; 0,0,0,4,0,0,0,0,0

我需要使用稀疏矩阵的DM标准形式。这个倍频程代码对我尝试过的一些人有效,但这个不行。谁能告诉我为什么

    A=[0,0,0,0,5,6,0,0,0,0;
    1,0,0,0,0,6,0,0,0,0;
    0,0,0,0,5,0,0,0,9,0;
    1,0,0,0,0,0,7,0,0,0;
    0,0,3,0,0,0,7,8,0,0;
    0,0,0,4,0,0,0,8,9,0;
    0,2,3,0,0,0,0,0,0,0;
    0,0,0,4,0,0,0,0,0,1;
    0,0,0,0,0,0,0,0,0,1];
    [rr,cc]=size(A);
    P=zeros(rr,rr); Q=zeros(cc,cc); [p,q,r,s]=dmperm(A);
    for i=[1:rr];
     P(i,p(i))=1;
    endfor;
    for i=[1:cc];
     Q(q(i),i)=1;
    endfor;
    A_but=P*A*Q;
    A_but