2017-02-21 11 views
0

1X24細胞を1X24個しか含まない細胞があります。私はこれらの100個の細胞を抽出し、それらを一緒に結合して100×24個の細胞を形成する必要がありますが、これをどのように行うことができますか?細胞内の細胞を単一細胞に変換する

私は 'cellfun'関数を使って遊んでいましたが、forループを使って必要な操作を実行しようと試みましたが、成功しませんでした。私はこれらの細胞を1つずつ結合することができますが、より効率的なアプローチを好むでしょう。どんな助けもありがとう。

細胞を用いて生データから生成される次

e_data二重62X24ある
for i = 1:100 
    band{i} = prctile(e-data,i); 
end 

+1

私が言うと思います:いけないセルとしてデータを生成します! 'band(i)= ...'や 'band(i、:)= ... 'を実行しても同じことができます。 –

+1

@ AnderBiguriのコメントはもちろん正解です。しかし時にはそれが可能ではありません( 'regexp'の' tokens'フラグ付き出力など)。この場合、[この回答](http://stackoverflow.com/questions/31588250/nested-cells-matlab?rq=1)が役立ちます。 – craigim

+0

ありがとう、私は長い間それを見て、私は盲目になった。 –

答えて

3

prctileへの第2の入力はそれほどコードが

に置き換えることができる array of percentagesとすることができます
band = prctile(e - data, 1:100).'; 

これにより、100×24の数値配列が作成され、セル配列よりもパフォーマンスが向上します。あなたが一緒に複数のセルの内容を連結する必要がある場合は、一般的に

はしかし、あなたは私が正しくあなたの目的を理解した場合、cat

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

に渡すことができcomma separated listを得{:}インデックスを使用することができ、あなたはiscell()を使用し、その後に欲しいものを取得する必要があります。

R=cellfun(@iscell, YourCell); 
Demanded_Cell=YourCell(R);