连接和提取细胞阵列non-cell数组的元素

4视图(30天)
你好,
所以我想取一个单元阵列和提取元素,连接它们,将它们在相应的位置在一个non-cell数组。我相信没有多大意义的假设下单元阵列
A = {1 [3], [], [2 3 7 8]; [2 4 5 7], [4 7 8], []; [], [], []}
现在我想把这个单元格数组第一个元素1[3],提取元素和连接它们,把它们作为non-cell数组的第一个元素。这将持续单元阵列的元素。如果一个细胞没有的元素,新数组中相应的位置将等于零。最后non-cell数组后的样子
B = [13 0, 2378, 2457, 478, 0, 0, 0)

接受的答案

KSSV
KSSV 2016年12月6日
A = {1 [3], [], [2 3 7 8]; [2 4 5 7], [4 7 8], []; [], [], []};
= (:);
B = 0(大小(A));
i = 1:元素个数(A)
如果{我}~ isempty ()
B (i) = str2num (strrep (num2str ({}),' ',));
结束
结束
B =重塑(B、3、3)
也可以不实现循环……但更重要的是理解代码。

答案(1)

Stephen23
Stephen23 2016年12月6日
编辑:Stephen23 2016年12月6日
一个简单的解决方案:
> > = {1 [3],[],[2、3、7、8];[2、4、5、7],[4 7 8],[];[],[],[]};
> > B = [13 0, 2378, 2457, 478, 0, 0, 0, 0)
B =
13 0 2378
2457 478 0
0 0 0
> > C = cellfun (@ (C)和([0,C]。* 10 ^(元素个数(C): 1:0)), A)
C =
13 0 2378
2457 478 0
0 0 0

类别

找到更多的在细胞数组帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!