从3D矩阵中删除空列

时间:2016-04-20 15:19:04

标签: matlab matrix

我的大小为A的矩阵3 x 100 x 19

 A(3x100x1) = 
Columns 1 through 4

0.0080    0.0090    0.0100    0.0110
0.1350    0.1350    0.1350    0.1350
1.7564    1.7564    1.7564    1.7582

Columns 5 through 8

0.0120    0.0130        0.0140     0
0.1350    0.1350        0.1350     0
1.7599    1.7599        1.7655     0 .... columns 100


 A(3x100x2) = 

 Columns 5 through 8

     0         0         0    0.0150
     0         0         0    0.1350
     0         0         0    1.7599... and so on till 100 column

同样地直到A(3x100x19)

我想删除三维矩阵的空列,并且需要A(3x10x1)A(3x10x2),而不需要空列。

我试过

    A(:,all(A == 0),:) = [] % it did not work.

我也试过

for m = 1:19
    B = A(:,:,segId)
    B(:,all(A == 0),:) = [];
end                               %% It did not work.

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:3)

你不能。想象一下这是一个立方体:你不能在MATLAB中打孔。你需要一个坚固的立方体。假设我消除A(2,4,5),MATLAB应该如何显示?瑞士奶酪不是MATLAB的选择,因此我将列保留为零,或者将它们设置为nan