matlab删除全零行或列

2022年5月21日 23点热度 0人点赞

Matlab是Matrix Laboratory 的结合拼写。是一个强大的数学处理、计算工具。掌握matlab对我们的学习和研究帮助会很大。

今天的问题是:怎么删除全零的行和列?

工具/原料

  • matlab

方法/步骤

  1. 1

    这个问题中,最重要的函数是any

    any函数的解释是:如果一个向量的所有元素都非零,那么返回1.

    (True if any element of a vector is a nonzero number or is logical 1 (TRUE). )

  2. 2

    比如,我们先生成一个矩阵A

    a1=0:3;a2=rand(1,4);

    A1=[a1;a2;a1+a2];

    A2=zeros(3,4);

    A=[A1;A2;a1;zeros(1,4)]

    那么A的数值是:

    A =

             0    1.0000    2.0000    3.0000

        0.8214    0.4447    0.6154    0.7919

        0.8214    1.4447    2.6154    3.7919

             0         0         0         0

             0         0         0         0

             0         0         0         0

             0    1.0000    2.0000    3.0000

             0         0         0         0

    可见有几个全零的行;根据any的定义,它找的是所有全零列,所以可以先把A转置后,看有哪些列是全零的。

  3. 3

    GetA=A(any(A'),:)    %any(A')得到A非零行数值

    GetA =

             0    1.0000    2.0000    3.0000

        0.8214    0.4447    0.6154    0.7919

        0.8214    1.4447    2.6154    3.7919

             0    1.0000    2.0000    3.0000

  4. 4

    如果A有全零的列,比如B=A‘。如何去掉B的全零列?

    用:GetB=B(:,any(B))这样any(B)挑出的是所有不全为0的列的值

    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部

laozhao

这个人很懒,什么都没留下

文章评论