2017-02-21 159 views
0

我有一个1X100单元格,其中包含独占的1X24单元格。我需要提取这100个细胞并将它们结合在一起形成一个100X24细胞,这怎么能做到呢?将单元格内的单元格转换为单个单元格

我一直在玩'cellfun'函数,也使用for循环来尝试执行所需的操作,但没有成功。我明白我可以逐个加入这些单元格,但宁愿采用更有效的方法。任何帮助,将不胜感激。

该单元从原始数据使用生成以下:

for i = 1:100 
    band{i} = prctile(e-data,i); 
end 

其中e_data是62X24双

+1

我会说:不生成数据作为单元格!你可以通过做'band(i)= ...'或'band(i,:)= ...'来做同样的事情@ –

+1

@ AnderBiguri的评论当然是正确的答案。但是,有时这是不可能的(例如''regexp'带'tokens'标志的输出)。在这种情况下,[这个答案](http://stackoverflow.com/questions/31588250/nested-cells-matlab?rq=1)应该有所帮助。 – craigim

+0

谢谢你,我已经花了很长时间看着它,我已经失明了。 –

回答

3

的第二个输入prctile可以是array of percentages因此您的代码可以与

替换
band = prctile(e - data, 1:100).'; 

这将创建一个100 x 24数组数组,该数组将比单元数组更具性能。

一般不过,如果你需要将多个单元格的内容串联在一起,你可以使用{:}索引,以产生comma separated list然后可以传递给cat

result = cat(1, band{:}); 
0

如果我理解正确的话你的目的,您需要使用iscell()并随后找回您想要的内容:

R=cellfun(@iscell, YourCell); 
Demanded_Cell=YourCell(R); 
相关问题