【问题标题】:How to remove zero values from a cell array in Matlab如何从 Matlab 中的单元格数组中删除零值
【发布时间】:2018-04-17 13:44:50
【问题描述】:

我在 MATLAB 中有一个像这样的元胞数组,

arr=  4  5  8
     22 23  0

零值始终出现在最后一行的末尾。如果有两个零值,它将如下所示,

arr=  4  5  8
     22  0  0

没有行的所有位置都包含零。谁能帮我删除最后一行中存在的那些零值?我想要的是这样的

arr=  4   5   8
     22  23

【问题讨论】:

  • 您想用[ ] 代替零吗?一定有什么。你不能有arr= {4 5 8; 22 23}
  • 不可能,除非您在每个单元格中都有一个占位符。 MATLAB 不支持不规则矩阵。
  • @SardarUsama 是的.. 我想要 [ ] 在那些地方。由于我有很多这样的单元格数组,我想要一种有效的方法。

标签: matlab matrix cell-array zero


【解决方案1】:

如果您在元胞数组的每个索引处都有标量,则将arr 转换为矩阵,找到存在零的索引,然后将它们替换为[]

arr([arr{:}]==0)={[]};

【讨论】:

  • arr(cell2mat(arr)==0)={[]}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-24
  • 2012-02-13
  • 2016-07-16
相关资源
最近更新 更多