如何从矩阵中删除带零的行并重建矩阵?

时间:2017-07-12 15:55:39

标签: matlab matrix

我有一个很大的nxm矩阵。以下是一些代码,用于设置示例矩阵E以进行说明:

E = [(0:9).',[rand(9,3); zeros(1,3)]]
>> E =
0    0.8147    0.9649    0.7922
1    0.9058    0.1576    0.9595
2    0.1270    0.9706    0.6557
3    0.9134    0.9572    0.0357
4    0.6324    0.4854    0.8491
5    0.0975    0.8003    0.9340
6    0.2785    0.1419    0.6787
7    0.5469    0.4218    0.7577
8    0.9575    0.9157    0.7431
9         0         0         0

我的问题是如何将矩阵E转换为

>> E =
0    0.8147    0.9649    0.7922
1    0.9058    0.1576    0.9595
2    0.1270    0.9706    0.6557
3    0.9134    0.9572    0.0357
4    0.6324    0.4854    0.8491
5    0.0975    0.8003    0.9340
6    0.2785    0.1419    0.6787
7    0.5469    0.4218    0.7577
8    0.9575    0.9157    0.7431

为了将其写入没有零的txt文件

由于此矩阵的大小不固定,因此在上例中可能有多行,如9,或者看起来像

>> E =
0    0.8147    0.9649    0.7922
1    0.9058    0.1576    0.9595
2    0.1270    0.9706    0.6557
3    0.9134    0.9572    0.0357
4    0.6324    0.4854    0.8491
5    0.0975    0.8003    0.9340
6    0.2785    0.1419    0.6787
7    0.5469    0.4218    0.7577
8    0.9575    0.9157    0.7431
0         0         0         0
0         0         0         0

谢谢。

1 个答案:

答案 0 :(得分:1)

这涵盖了所有情况吗?如果第2列中的元素== 0,则将其删除。

<script>
    $(function(){
      $('.menu-rate').click(function(){
        $(this).closest('.container').toggleClass('collapsed');
      });

    });
</script>

或者,如果除第一个列之外的所有列都必须为零:

E = E(E(:,2) ~= 0,:);