matlab删除全零行或列

2025-10-08 02:44:22

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

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

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

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转置后,看有哪些列是全零的。

matlab删除全零行或列

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、如果A有全零的列,比如B=A‘。如何去掉B的全零列?

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

matlab删除全零行或列

matlab删除全零行或列

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢