从矩阵中删除零

时间:2019-05-31 15:09:14

标签: matlab matrix

我有一个矩阵,其中包含大行和大列,如下所示:

A = 0    0  0  0 
    0    0  0  0 
    0    0  0  0 
    2000 11 16 -0.74
    0    0  0  0
    0    0  0  0
    2000 12 26 -0.84
    0    0  0  0
    0    0  0  0

我需要从矩阵中删除所有零,以获取输出,如

B = 2000 11 16 -0.74
    2000 12 26 -0.84

我在这里尝试了一种可用的解决方案,

B = A(A~=0)

它删除零,但给出类似的输出,

2000
2000
11
12
-0.74
-0.84

如何获得所需的输出?

1 个答案:

答案 0 :(得分:3)

假设A是一个二维矩阵

A(any(A,2),:)

会的。

示例:

>> A=[rand(2,3); zeros(3); rand(1,3)]
A =

   0.13878   0.44315   0.25832
   0.01879   0.93844   0.57537
   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000
   0.00000   0.00000   0.00000
   0.50581   0.37870   0.56563

>> A(any(A,2),:)
ans =

   0.138776   0.443152   0.258325
   0.018794   0.938439   0.575371
   0.505809   0.378696   0.565632