0

次のような文字列とセルを含むセル配列があります。

theCellArray = {{'aa1' {'bb'; 'cc'}}; {'aa2' {'dd'; 'ee'}}};

今、名前を連結して、これに似たものを取得できるようにしたいと思います:

aa1.bb
aa1.cc
aa2.dd
aa2.ee

aa1要素の数は変更される場合があります(したがって、 の場合bbccddee、 などがある場合があります)。

私はさまざまなことを試しましたが、Matlab に文字列の 2 番目のステップ (を含むもの) を評価させることは常にできませんbb... cc)。何か案は?

編集:

2 つ以上のレベルがある可能性があるため、次のようtheCellArrayになります。

theCellArray = {{'aa1' {'bb' {'b1' {'b11' 'b12'} 'b2'}; 'cc'}}; {'aa2' {'dd'; 'ee'}}};

theCellArray木のようなものなのでレベル数は不明。

4

2 に答える 2

1

ここに甘いものがあります:

out = cellfun(@(y) cellfun(@(x) [ y{1} '.' x],y{2},'UniformOutput',false),theCellArray,'UniformOutput',false)
out{:}
ans = 

    'aa1.bb'
    'aa1.cc'


ans = 

    'aa2.dd'
    'aa2.ee'

スーパーワンライナー!(ただし、あまり効率的ではありません) また、2 レベルのセル文字列を使用した元の質問のポーズでのみ機能します。

于 2013-06-28T19:20:26.830 に答える