2017-02-21 158 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); 
相關問題