查看: 4404|回复: 10|关注: 0

[已答复] 如何去除元胞数组里的空值

[复制链接]

新手

13 麦片

财富积分


050


6

主题

15

帖子

0

最佳答案
发表于 2017-5-1 13:49:07 | 显示全部楼层 |阅读模式
各位前辈:我有这样一个已经存储了数值的元胞数组B(5×4),如图
想要删除没有存取数值的元素,并压缩为一列元胞数组,变为数组CC(8×1),如图

该通过什么命令对元胞数组进行操作呢?

元胞数组B

元胞数组B

元胞数组CC

元胞数组CC
回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

19

主题

2377

帖子

484

最佳答案
  • 关注者: 96
发表于 2017-5-1 17:51:30 | 显示全部楼层
  1. B = {[1 2],[3 4],[],[];[5 6],[],[],[];[],[7 8],[],[]}
  2. CC = reshape([B{:}].',length(B{1}),[]).'
复制代码
这是一个例子,得到的结果是:
  1. CC =
  2.      1     2
  3.      5     6
  4.      3     4
  5.      7     8
复制代码
多看帮助文档
说明你的matlab版本
回复此楼 已获打赏: 0 积分

举报

新手

13 麦片

财富积分


050


6

主题

15

帖子

0

最佳答案
 楼主| 发表于 2017-5-1 21:14:00 | 显示全部楼层
深蓝孩童 发表于 2017-5-1 17:51
这是一个例子,得到的结果是:

可是,这个并不能保持CC仍为元胞数组的效果啊
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

权威

9199 麦片

财富积分



11

主题

1万

帖子

1997

最佳答案
  • 关注者: 596
发表于 2017-5-1 23:35:17 | 显示全部楼层
dream_zhuheyun 发表于 2017-5-1 21:14
可是,这个并不能保持CC仍为元胞数组的效果啊

想这样?
  1. B = {[1 2],[3 4],[],[];[5 6],[],[],[];[],[],[],[]}
  2. B(cellfun(@(x) isempty(x),B))=[]
复制代码
回复此楼 已获打赏: 0 积分

举报

新手

11 麦片

财富积分


050


7

主题

13

帖子

0

最佳答案
发表于 2019-6-5 15:32:44 | 显示全部楼层
厉害了-我也在照这个问题答案
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
发表于 2020-1-2 15:20:14 | 显示全部楼层
深蓝孩童 发表于 2017-5-1 17:51
这是一个例子,得到的结果是:

大神,可不可以帮忙解释一下这个算式CC = reshape([B{:}].',length(B{1}),[]).'的意思,我实在看不懂这个格式,为什么有这么多'和.
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
发表于 2020-1-2 15:47:21 | 显示全部楼层
深蓝孩童 发表于 2017-5-1 17:51
这是一个例子,得到的结果是:

发现其实搞不懂的是[B{:}],请问这个是什么意思啊?
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

19

主题

2377

帖子

484

最佳答案
  • 关注者: 96
发表于 2020-1-2 17:00:17 | 显示全部楼层
赖菲虹 发表于 2020-1-2 15:47
发现其实搞不懂的是,请问这个是什么意思啊?

如下图所示,B 是一个元胞数组,B{:} 就是取出它的所有元素,此时返回的结果会是很多个变量,使用 [ ] 串联起来就是将所有的结果串联起来。你也可以自己再找例子试一下,应该还是比较明显的。
批注 2020-01-02 165718.png

多看帮助文档
说明你的matlab版本
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
发表于 2020-1-14 16:59:39 | 显示全部楼层
深蓝孩童 发表于 2020-1-2 17:00
如下图所示,B 是一个元胞数组,B{:} 就是取出它的所有元素,此时返回的结果会是很多个变量,使用 [ ] 串 ...

多谢大佬!
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
发表于 2020-1-14 17:15:38 | 显示全部楼层
深蓝孩童 发表于 2020-1-2 17:00
如下图所示,B 是一个元胞数组,B{:} 就是取出它的所有元素,此时返回的结果会是很多个变量,使用 [ ] 串 ...

还是得请教大佬,我这边B{:}的结果是一个显示为"I"的1*1char....这是为什么呢?
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表