这个问题问的有点问题。
如果是一维的,a(a==0) = [] 就能解决问题
如果是多维的,a(a==0) = [] 会把a变成一维的,然后结果类似于上面的结果。原因是每行每列中的0的个数不同,无法保持多维的样子,只能拉长了当成一维处理。

a =

    4    4    4    2    2
    4    0    3    2    2
    2    1    2    4    3
    3    0    5    4    4
    1    0    0    1    4

>> a(a==0)=[]

a =

  Columns 1 through 20

    4    4    2    3    1    4    1    4    3    2    5    2    2    4    4    1    2    2    3    4

  Column 21

    4

作者简介

Chun-Hui Gao is a Research Associate at Huazhong Agricultural University.

重复使用

Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The source code is licensed under MIT. The full source is available at https://github.com/yihui/hugo-prose.

欢迎修订

如果您发现本文里含有任何错误(包括错别字和标点符号),欢迎在本站的 GitHub 项目里提交修订意见。

引用本文

如果您使用了本文的内容,请按照以下方式引用:

gaoch (2011). matlab 怎样去掉矩阵中的零元素. BIO-SPRING. /post/2011/02/19/2011-02-19-matlab-cleanup/

BibTeX citation

@misc{
  title = "matlab 怎样去掉矩阵中的零元素",
  author = "gaoch",
  year = "2011",
  journal = "BIO-SPRING",
  note = "/post/2011/02/19/2011-02-19-matlab-cleanup/"
}