wglnbb 2021-07-18 20:33 采纳率: 80%
浏览 70
已采纳

matlab中如何将含非0元素个数排名最多得几行删掉?

比如图片

img
去掉2、3两行

  • 写回答

3条回答 默认 最新

  • soar3033 2021-07-18 20:41
    关注

    如果你是想手动删除,那么假设你的矩阵名是A,那么输入

    A(3,:)=[];   
    A(2,:)=[];
    
    

    如果你是想自动删除,那么

    A=[1,6,9,0,0,0,0;2,4,6,9,1,0,0;1,6,9,0,0,0,0;2,4,6,9,0,0,0];
    [r,c]=size(A);
    m=0;
    for i = 1:r
    t=0;
    for j=1:c
    if A(i,j)~=0
    t = t + 1;
    end
    end
    row(i)=t;
    if t>m
    m=t;
    end
    end
    for i=r:-1:1
    if row(i)==m
    A(i,:)=[];
    end
    end
    
    
    
    
    
    

    大于3都删除的版本

    
    A=[1,6,9,0,0,0,0;2,4,6,9,1,0,0;1,6,9,0,0,0,0;2,4,6,9,0,0,0];
    [r,c]=size(A);
    m=3; %如果大于3
    for i = 1:r
    t=0;
    for j=1:c
    if A(i,j)~=0
    t = t + 1;
    end
    end
    row(i)=t;
    end
    for i=r:-1:1
    if row(i)>m
    A(i,:)=[];
    end
    end
    
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 7月18日
  • 创建了问题 7月18日